diff --git a/headers/header_spec.txt b/headers/header_spec.txt index 46728f67158b574cdc4d57a131dabe62f6f58a01..a2efff415c7dee5659702179d034535673b1df7a 100644 --- a/headers/header_spec.txt +++ b/headers/header_spec.txt @@ -1444,6 +1444,8 @@ src/plugins/value/engine/compute_functions.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/engine/compute_functions.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/engine/evaluation.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/engine/evaluation.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/value/engine/function_calls.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/value/engine/function_calls.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/engine/initialization.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/engine/initialization.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/engine/iterator.ml: CEA_LGPL_OR_PROPRIETARY @@ -1498,6 +1500,8 @@ src/plugins/value/partitioning/trace_partitioning.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/partitioning/trace_partitioning.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/abstract.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/abstract.mli: CEA_LGPL_OR_PROPRIETARY +src/plugins/value/utils/active_behaviors.ml: CEA_LGPL_OR_PROPRIETARY +src/plugins/value/utils/active_behaviors.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/backward_formals.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/backward_formals.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/eva_annotations.ml: CEA_LGPL_OR_PROPRIETARY @@ -1518,8 +1522,6 @@ src/plugins/value/utils/red_statuses.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/red_statuses.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/library_functions.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/library_functions.mli: CEA_LGPL_OR_PROPRIETARY -src/plugins/value/utils/mark_noresults.ml: CEA_LGPL_OR_PROPRIETARY -src/plugins/value/utils/mark_noresults.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/results.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/results.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/structure.ml: CEA_LGPL_OR_PROPRIETARY diff --git a/ivette/src/dome/renderer/controls/icons.tsx b/ivette/src/dome/renderer/controls/icons.tsx index 77a35a1b31bb8fe0b5f3804fe51dcc6daa662e7a..7c7fdde6ef9da3aae74351673472cdb51085e43b 100644 --- a/ivette/src/dome/renderer/controls/icons.tsx +++ b/ivette/src/dome/renderer/controls/icons.tsx @@ -59,6 +59,8 @@ export interface SVGprops { Default is set to `-0.125` times the size). */ offset?: number; + className?: string; + fill?: string; } /** @@ -66,7 +68,7 @@ export interface SVGprops { Only returns the identified `<svg/>` element from Icon base. */ export function SVG(props: SVGprops): null | JSX.Element { - const { id } = props; + const { id, className, fill } = props; if (!id) return null; const icon = Icons[id]; if (!icon) return <>{id}</>; @@ -82,9 +84,10 @@ export function SVG(props: SVGprops): null | JSX.Element { width={size} style={{ bottom: offset }} viewBox={viewBox} + className = {className} > {title && <title>{title}</title>} - <path d={path} /> + <path d={path} fill={fill} /> </svg> ); } diff --git a/ivette/src/dome/renderer/dark.css b/ivette/src/dome/renderer/dark.css index ee7b62fbc147e752a86bd4e70e32e0049a54db57..265d1d7d23c681419dac7002fb30920581eabc86 100644 --- a/ivette/src/dome/renderer/dark.css +++ b/ivette/src/dome/renderer/dark.css @@ -45,6 +45,7 @@ --default-button-hover: #364355; --default-button-active: #303d4f; + --primary-button-color: #146bbf; --primary-button-img: linear-gradient(to bottom, #146bbf 0%, #1960b2 100%); --primary-button-hover: #0e65b9; --primary-button-active: #085fb3; diff --git a/ivette/src/dome/renderer/frame/style.css b/ivette/src/dome/renderer/frame/style.css index 266bed0e505b00875e050e9834c43bf5ada4b9d7..f9d783ae1212313089d556f9bc563263e9a68f22 100644 --- a/ivette/src/dome/renderer/frame/style.css +++ b/ivette/src/dome/renderer/frame/style.css @@ -430,68 +430,98 @@ } /* -------------------------------------------------------------------------- */ -/* --- Styling ToolBar Search Field --- */ +/* --- Styling ToolBar Action Field --- */ /* -------------------------------------------------------------------------- */ -.dome-xToolBar-control.dome-xToolBar-searchfield { - background-image: none ; - background-color: var(--background-alterning-odd); - padding-left: 20px ; - border-radius: 12px ; - border-color: var(--border); - color: var(--text); - width: 32px ; - transition: width 0.4s ease-in-out ; +.dome-xToolBar-actionComponent { + overflow: visible; } -.dome-xToolBar-searchfield:focus, -.dome-xToolBar-searchfield:hover, -.dome-xToolBar-searchicon:hover + .dome-xToolBar-searchfield -{ - width: 160px; +.dome-xToolBar-actionField { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + margin: 2px 1px 2px 1px; + padding: 0; + overflow: hidden; + font-size: 13px; + width: 28px; + border-radius: 12px; + transition: width 0.4s ease-in-out; + z-Index: +1; } -.dome-xToolBar-searchicon { - position: relative ; - overflow: visible ; - z-Index: +1; - height: 0px; - width: 0px; - top: -7px ; - left: 12px ; +.dome-xToolBar-actionField:hover { + width: 228px; } -.dome-xToolBar-searchmenu { - position: relative ; - width: 162px ; - max-height: 120px ; - overflow-x: hidden ; - overflow-y: auto ; - left: -7px ; - top: 4px ; - padding: 0px ; - border: 1pt solid var(--border) ; - background: var(--background-alterning-odd) ; +.dome-xToolBar-actionField:focus-within { + width: 228px !important; + box-shadow: 0 0 2px var(--border-discrete); +} + +.dome-xToolBar-actionField div.dome-xToolBar-modeSelection { + position: relative; + padding: 3px 8px 0px 8px; + cursor: pointer; +} + +.dome-xToolBar-actionField SVG.dome-xToolBar-modeIcon { + position: relative; +} + +/* Style the search box inside the navigation bar */ +.dome-xToolBar-actionField input[type=search] { + border: none; + border-top-right-radius: 12px; + border-bottom-right-radius: 12px; + text-indent: 4px; + height: 21px; + width: 200px; + outline: none; + background: var(--background-softer); +} + +.dome-xToolBar-actionComponent div.dome-xToolBar-suggestions { + position: absolute; + overflow-x: hidden; + overflow-y: auto; + max-height: 120px; + z-index: +1; + width: 0px; + background: var(--background-alterning-odd); + border-radius: 12px; +} + +.dome-xToolBar-actionComponent:focus-within div.dome-xToolBar-suggestions { + width: 230px; } .dome-xToolBar-searchitem { - color: var(--text); - display: block ; - width: 100% ; - margin-left: 0px ; - margin-right: 0px ; - padding-left: 4px ; - padding-right: 2px ; + display: block ; + width: 100% ; + margin-left: 0px ; + margin-right: 0px ; + padding-left: 4px ; + padding-right: 2px ; } -.dome-xToolBar-searchitem:hover, -.dome-xToolBar-searchindex -{ - background: var(--selected-element) !important; +.dome-xToolBar-searchitem:hover, .dome-xToolBar-searchindex { + background: var(--selected-element) !important; } .dome-xToolBar-searchitem:nth-child(even) { - background: var(--background-alterning-even); + background: var(--background-alterning-even); +} + +.dome-xToolBar-searchMode { + background: var(--primary-button-color); + fill: var(--text-discrete); +} + +.dome-xToolBar-modeOfModes { + background: var(--background-profound); + fill: var(--text-discrete); } /* -------------------------------------------------------------------------- */ diff --git a/ivette/src/dome/renderer/frame/toolbars.tsx b/ivette/src/dome/renderer/frame/toolbars.tsx index 51ab7f1a51a34b6623b7188a55f2d270c6132eef..596a7ece181bfaeef49980544cf062a33958d779 100644 --- a/ivette/src/dome/renderer/frame/toolbars.tsx +++ b/ivette/src/dome/renderer/frame/toolbars.tsx @@ -32,7 +32,7 @@ */ import React from 'react'; -import { Event, useEvent, find } from 'dome'; +import { Event, find, usePromise } from 'dome'; import { SVG } from 'dome/controls/icons'; import { Label } from 'dome/controls/labels'; import { classes } from 'dome/misc/utils'; @@ -265,92 +265,187 @@ export function Select(props: SelectionProps<string>) { } // -------------------------------------------------------------------------- -// --- SearchField +// --- ModalActionField necessary types // -------------------------------------------------------------------------- -const DEBOUNCED_SEARCH = 200; - -const scrollToRef = (r: null | HTMLLabelElement) => { - if (r) r.scrollIntoView({ block: 'nearest' }); -}; - -export interface Hint<A> { +/** Description of a hint used to populate the suggestions. */ +export interface Hint { id: string | number; icon?: string; label: string | JSX.Element; title?: string; - value: A; + value(): void; + rank?: number; } -export interface SearchFieldProps<A> { - /** Tooltip Text. */ - title?: string; - /** Placeholder Text. */ +/** Total order on hints. */ +export function byHint(a: Hint, b: Hint) { + return (a.rank ?? 0) - (b.rank ?? 0); +} + +/** Type alias for functions that build hints list from a pattern. */ +export type HintsEvaluator = (pattern: string) => Promise<Hint[]>; + +/** Description of an action mode. */ +export interface ActionMode { + /** Mode tooltip text. */ + title: string; + /** Mode placeholder text. */ placeholder?: string; - /** Provided search hints (with respect to last `onSearch()` callback). */ - hints?: Hint<A>[]; - /** Search callback. Triggered on Enter Key, Escape Key or Blur event. */ - onSelect?: (pattern: string) => void; - /** Dynamic search callback. Triggered on key pressed (debounced). */ - onSearch?: (pattern: string) => void; - /** Hint selection callback. */ - onHint?: (hint: Hint<A>) => void; - /** Event that triggers a focus request (defaults to [[dome.find]]). */ - event?: null | Event<void>; + /** Icon displayed when the mode is selected. */ + icon: string; + /** CSS class for the mode section. */ + className: string; + /** Hints provider. */ + hints: HintsEvaluator; + /** Hint selection callback. Defaults to evaluate the <value> field. */ + onHint?: (hint: Hint) => void; + /** Action to perform when Enter is hit. Useful for modes without hints. */ + onEnter?: (pattern: string) => void; + /** Event that triggers a focus request. */ + event?: Event<void>; } -interface Searching { - pattern?: string; - timer?: NodeJS.Timeout | undefined; - onSearch?: ((p: string) => void); +// -------------------------------------------------------------------------- +// --- ModalActionField default mode: Search +// -------------------------------------------------------------------------- + +const searchEvaluators = new Map<string, HintsEvaluator>(); + +// Updates to the new evaluator if the id is already registered +export function registerSearchHints(id: string, search: HintsEvaluator) { + searchEvaluators.set(id, search); } -/** - Search Bar. - */ -export function SearchField<A = undefined>(props: SearchFieldProps<A>) { - const inputRef = React.useRef<HTMLInputElement | null>(null); - const blur = () => inputRef.current?.blur(); - const focus = () => inputRef.current?.focus(); - const [value, setValue] = React.useState(''); - const [index, setIndex] = React.useState(-1); - const searching = React.useRef<Searching>({}); - const { onHint, onSelect, onSearch, hints = [] } = props; - - // Find event trigger - useEvent(props.event ?? find, focus); - - // Lookup trigger - const triggerLookup = React.useCallback((pattern: string) => { - const s = searching.current; - s.pattern = pattern; - s.onSearch = onSearch; - if (!s.timer) { - s.timer = setTimeout(() => { - s.timer = undefined; - if (s.onSearch && s.pattern) s.onSearch(s.pattern); - }, DEBOUNCED_SEARCH); - } - }, [onSearch]); +export function unregisterSearchHints(id: string) { + searchEvaluators.delete(id); +} + +async function searchHints(pattern: string) { + if (pattern === '') return []; + const promises = Array.from(searchEvaluators).map(([_id, E]) => E(pattern)); + const hints = await Promise.all(promises); + return hints.flat().sort(byHint); +} + +const searchMode: ActionMode = { + title: "Search", + placeholder: "Search…", + icon: "SEARCH", + className: 'dome-xToolBar-searchMode', + hints: searchHints, + event: find, +}; + +// -------------------------------------------------------------------------- +// --- ModalActionField mode button component +// -------------------------------------------------------------------------- + +interface ModeButtonComponentProps { + current: ActionMode; + onClick: () => void; +} + +function ModeButton(props: ModeButtonComponentProps) { + const { current, onClick } = props; + return ( + <div + className={classes("dome-xToolBar-modeSelection", current.className)} + onClick={onClick} + > + <SVG + className="dome-xToolBar-modeIcon" + id={current.icon} + offset={-1} + /> + </div> + ); +} + +// -------------------------------------------------------------------------- +// --- ModalActionField suggestions component +// -------------------------------------------------------------------------- + +interface SuggestionsProps { + hints: Hint[]; + onHint: (hint: Hint) => void; + index: number; +} + +function scrollToRef (r: null | HTMLLabelElement) { + if (r) r.scrollIntoView({ block: 'nearest' }); +} + +function Suggestions(props: SuggestionsProps) { + const { hints, onHint, index } = props; + + // Computing the relevant suggestions. */ + const suggestions = hints.map((h, k) => { + const selected = k === index || hints.length === 1; + const classSelected = selected && 'dome-xToolBar-searchindex'; + const className = classes('dome-xToolBar-searchitem', classSelected); + return ( + <Label + ref={selected ? scrollToRef : undefined} + key={h.id} + icon={h.icon} + title={h.title} + className={className} + onClick={() => onHint(h)} + > + {h.label} + </Label> + ); + }); + + // Rendering the component. + return ( + <div + style={{ visibility: suggestions.length > 0 ? 'visible' : 'hidden' }} + className='dome-xToolBar-suggestions' + onMouseDown={ (event) => event.preventDefault() } + > + {suggestions} + </div> + ); +} + +// -------------------------------------------------------------------------- +// --- ModalActionField input field component +// -------------------------------------------------------------------------- + +interface ActionInputProps { + title: string; + placeholder?: string; + hints: Hint[]; + onHint: (hint: Hint) => void; + onEnter?: (pattern: string) => void; + index: number; + setIndex: (n: number) => void; + pattern: string; + setPattern: (p: string) => void; + inputRef: React.MutableRefObject<HTMLInputElement | null>; +} + +function ActionInput(props: ActionInputProps) { + const { title, placeholder, hints, onHint, onEnter } = props; + const { index, setIndex, pattern, setPattern, inputRef } = props; // Blur Event - const onBlur = () => { - setValue(''); - setIndex(-1); - if (onSearch) onSearch(''); - }; + const onBlur = () => { setPattern(''); setIndex(-1); }; - // Key Events - const onKey = (evt: React.KeyboardEvent) => { + // Key Up Events + const onKeyUp = (evt: React.KeyboardEvent) => { + const blur = () => inputRef.current?.blur(); switch (evt.key) { case 'Escape': blur(); break; case 'Enter': - if (index >= 0 && index < hints.length) { - if (onHint) onHint(hints[index]); - } else if (onSelect) onSelect(value); blur(); + if (index >= 0 && index < hints.length) onHint(hints[index]); + else if (hints.length === 1) onHint(hints[0]); + else if (onEnter) onEnter(pattern); break; case 'ArrowUp': if (index < 0) setIndex(hints.length - 1); @@ -363,67 +458,138 @@ export function SearchField<A = undefined>(props: SearchFieldProps<A>) { } }; - // Input Events + // Key Down Events. Disables the default behavior on ArrowUp and ArrowDown. + const onKeyDown = (evt: React.KeyboardEvent) => { + if (evt.key === 'ArrowUp' || evt.key === 'ArrowDown') evt.preventDefault(); + }; + + // // Input Events const onChange = (evt: React.ChangeEvent<HTMLInputElement>) => { - const newValue = evt.target.value; - triggerLookup(newValue); setIndex(-1); - setValue(newValue); + setPattern(evt.target.value); }; - // Render Suggestions - const suggestions = hints.map((h, k) => { - const selected = k === index || hints.length === 1; - const className = classes( - 'dome-xToolBar-searchitem', - selected && 'dome-xToolBar-searchindex', - ); - return ( - <Label - ref={selected ? scrollToRef : undefined} - key={h.id} - icon={h.icon} - title={h.title} - className={className} - onClick={() => { - if (onHint) onHint(h); - blur(); - }} - > - {h.label} - </Label> - ); + return ( + <input + type="search" + placeholder={placeholder} + ref={inputRef} + title={title} + value={pattern} + onKeyUp={onKeyUp} + onKeyDown={onKeyDown} + onChange={onChange} + onBlur={onBlur} + /> + ); +} + +// -------------------------------------------------------------------------- +// --- ModalActionField component +// -------------------------------------------------------------------------- + +export const RegisterMode: Event<ActionMode> = + new Event('dome.actionmode.register'); + +export const UnregisterMode: Event<ActionMode> = + new Event('dome.actionmode.unregister'); + +export function ModalActionField() { + + // Internal state of the component along with useful functions acting on it. + const inputRef = React.useRef<HTMLInputElement | null>(null); + const [index, setIndex] = React.useState(-1); + const [pattern, setPattern] = React.useState(''); + const [current, onModeChange] = React.useState<ActionMode>(searchMode); + const focus = () => inputRef.current?.focus(); + const changeMode = (m: ActionMode) => () => { onModeChange(m); focus(); }; + const toDefault = () => onModeChange(searchMode); + const reset = (m: ActionMode) => { if (current === m) toDefault(); }; + + // Set of all modes currently active. We populate it by reacting to + // RegisterMode and UnregisterMode events. We also activate the mode event if + // available. Everything is cleaned when the component is unmounted. + const [allModes] = React.useState<Set<ActionMode>>(new Set()); + React.useEffect(() => { + const on = (m: ActionMode) => m.event?.on(changeMode(m)); + const register = (m: ActionMode) => { allModes.add(m); on(m); }; + const off = (m: ActionMode) => m.event?.off(changeMode(m)); + const remove = (m: ActionMode) => { allModes.delete(m); off(m); reset(m); }; + RegisterMode.on(register); UnregisterMode.on(remove); + return () => { RegisterMode.off(register); UnregisterMode.off(remove); }; }); - const haspopup = - inputRef.current === document.activeElement - && suggestions.length > 0; - const visibility = haspopup ? 'visible' : 'hidden'; - // Render Component + // Register the search mode. + React.useEffect(() => RegisterMode.emit(searchMode)); + + // Compute the hints for the current mode. + const { hints, onHint = (h) => h.value(), onEnter } = current; + const hintsPromise = React.useMemo(() => hints(pattern), [pattern, hints]); + const { result = [] } = usePromise(hintsPromise); + + // Auxiliary function that build a Hint from an ActionMode. + const modeToHint = (mode: ActionMode) => { + const { title, icon } = mode; + const id = 'ActionMode-' + title + '-' + icon; + const value = () => { onModeChange(mode); }; + return { id, icon, label: title, title, value, rank: -1000 }; + }; + + // Hints provider for the mode of all modes. + const modesHints = React.useCallback((input: string) => { + const p = input.toLowerCase(); + const fit = (m: ActionMode) => m.title.toLowerCase().includes(p); + return Promise.resolve(Array.from(allModes).filter(fit).map(modeToHint)); + }, [allModes]); + + // Build the mode of all modes. This special mode is activated when clicking + // on the current mode icon and allows to change the current mode, displaying + // a list of all available modes as hints. + const modesMode = React.useMemo(() => { + const title = "Mode selection"; + const placeholder = "Search mode"; + const icon = "TUNINGS"; + const className = 'dome-xToolBar-modeOfModes'; + return { title, placeholder, icon, className, hints: modesHints }; + }, [modesHints]); + + // Build a new search engine for the search mode, adding available modes to + // the possible search hints. + const searchModeHints = React.useCallback(async (input: string) => { + const hs = await modesMode.hints(input); + const notCurrent = (h: Hint) => !(h.title?.includes(current.title)); + return hs.filter(notCurrent); + }, [current.title, modesMode]); + + // Register the new search engine. + React.useEffect(() => { + registerSearchHints('ModesMode', searchModeHints); + return () => unregisterSearchHints('ModesMode'); + }, [searchModeHints]); + + // Build the component. + const { title, placeholder } = current; + const handleModeClick = changeMode(modesMode); + const onBlur = () => reset(modesMode); return ( - <> - <div className="dome-xToolBar-searchicon"> - <SVG id="SEARCH" /> - <div - style={{ visibility }} - className="dome-xToolBar-searchmenu" - onMouseDown={(event) => event.preventDefault()} - > - {suggestions} - </div> + <div className="dome-xToolBar-actionComponent" onBlur={onBlur}> + <div className="dome-xToolBar-actionField"> + <ModeButton current={current} onClick={handleModeClick} /> + <ActionInput + title={title} + placeholder={placeholder} + hints={result} + onHint={onHint} + onEnter={onEnter} + index={index} + setIndex={setIndex} + pattern={pattern} + setPattern={setPattern} + inputRef={inputRef} + /> </div> - <input - ref={inputRef} - type="search" - title={props.title} - value={value} - placeholder={props.placeholder} - className="dome-xToolBar-control dome-xToolBar-searchfield" - onKeyUp={onKey} - onChange={onChange} - onBlur={onBlur} - /> - </> + <Suggestions hints={result} onHint={onHint} index={index} /> + </div> ); } diff --git a/ivette/src/dome/renderer/light.css b/ivette/src/dome/renderer/light.css index e70918a90f1e1f35a7b2ac7be6a7cbce40a9e394..1eb31da53fc00624364f9f6577ef1114ef196c60 100644 --- a/ivette/src/dome/renderer/light.css +++ b/ivette/src/dome/renderer/light.css @@ -45,6 +45,7 @@ --default-button-hover: #ffffff; --default-button-active: #f9f9f9; + --primary-button-color: #449bef; --primary-button-img: linear-gradient(to bottom, #449bef 0%, #4990e2 100%); --primary-button-hover: #00b6ff; --primary-button-active: #ddd; diff --git a/ivette/src/frama-c/kernel/Globals.tsx b/ivette/src/frama-c/kernel/Globals.tsx index de8ef1cabd5c4f9c7d89c0d5c80fef5a340c64a1..57adbb92980d9b5ad2a9b7c0fcee2b30c57bb7fe 100644 --- a/ivette/src/frama-c/kernel/Globals.tsx +++ b/ivette/src/frama-c/kernel/Globals.tsx @@ -30,7 +30,7 @@ import { classes } from 'dome/misc/utils'; import { alpha } from 'dome/data/compare'; import { Section, Item } from 'dome/frame/sidebars'; import { Button } from 'dome/controls/buttons'; -import * as Ivette from 'ivette'; +import * as Toolbars from 'dome/frame/toolbars'; import * as States from 'frama-c/states'; import { functions, functionsData } from 'frama-c/kernel/api/ast'; @@ -40,16 +40,16 @@ import { computationState } from 'frama-c/plugins/eva/api/general'; // --- Global Search Hints // -------------------------------------------------------------------------- -function makeFunctionHint(fct: functionsData): Ivette.Hint { +function makeFunctionHint(fct: functionsData): Toolbars.Hint { return { id: fct.key, label: fct.name, title: fct.signature, - onSelection: () => States.setSelection({ fct: fct.name }), + value: () => States.setSelection({ fct: fct.name }), }; } -async function lookupGlobals(pattern: string): Promise<Ivette.Hint[]> { +async function lookupGlobals(pattern: string): Promise<Toolbars.Hint[]> { const lookup = pattern.toLowerCase(); const fcts = States.getSyncArray(functions).getArray(); return fcts.filter((fn) => ( @@ -57,7 +57,7 @@ async function lookupGlobals(pattern: string): Promise<Ivette.Hint[]> { )).map(makeFunctionHint); } -Ivette.registerHints('frama-c.globals', lookupGlobals); +Toolbars.registerSearchHints('frama-c.globals', lookupGlobals); // -------------------------------------------------------------------------- // --- Function Item diff --git a/ivette/src/frama-c/states.ts b/ivette/src/frama-c/states.ts index c0d940c7f09c3083b19e9882d26889712d1812cf..14b03daf39dd0ed6e24699a0d9f9eda87b381733 100644 --- a/ivette/src/frama-c/states.ts +++ b/ivette/src/frama-c/states.ts @@ -487,6 +487,7 @@ export function useSyncArray<K, A>( const st = lookupSyncArray(arr); React.useEffect(() => st.update(), [st]); Server.useSignal(arr.signal, st.fetch); + st.update(); useModel(st.model, sync); return st.model; } diff --git a/ivette/src/ivette/index.tsx b/ivette/src/ivette/index.tsx index 4cd9fa9f83bb89ad26b124c72c68d3aa8b4f9b36..596110753d9bd49d9f689ad019cc86a216138fe1 100644 --- a/ivette/src/ivette/index.tsx +++ b/ivette/src/ivette/index.tsx @@ -180,32 +180,6 @@ export function TitleBar(props: TitleBarProps) { ); } -/* --------------------------------------------------------------------------*/ -/* --- Search Hints ---*/ -/* --------------------------------------------------------------------------*/ - -export interface Hint { - id: string; - label: string | JSX.Element; - title?: string; - rank?: number; - onSelection: () => void; -} - -/** - Register a hint search engine for the Ivette toolbar. -*/ -export function registerHints( - id: string, - lookup: (pattern: string) => Promise<Hint[]>, -) { - const adaptor = (h: Hint): Ext.SearchHint => ( - { ...h, value: () => h.onSelection() } - ); - const search = (p: string) => lookup(p).then((hs) => hs.map(adaptor)); - Ext.registerHints({ id, search }); -} - /* --------------------------------------------------------------------------*/ /* --- Sidebar Panels ---*/ /* --------------------------------------------------------------------------*/ diff --git a/ivette/src/renderer/Application.tsx b/ivette/src/renderer/Application.tsx index b3ead33936b44072cc8e0354aaa068020574a3ff..42bfd85a9f252bb9d1ef723bcf49450eadd3d7f0 100644 --- a/ivette/src/renderer/Application.tsx +++ b/ivette/src/renderer/Application.tsx @@ -47,10 +47,7 @@ export default function Application(): JSX.Element { Dome.useFlipSettings('frama-c.sidebar.unfold', true); const [viewbar, flipViewbar] = Dome.useFlipSettings('frama-c.viewbar.unfold', true); - const hints = Extensions.useSearchHints(); - const onSelectedHints = (): void => { - if (hints.length === 1) Extensions.onSearchHint(hints[0]); - }; + return ( <Vfill> <Toolbar.ToolBar> @@ -63,15 +60,9 @@ export default function Application(): JSX.Element { <Controller.Control /> <Extensions.Toolbar /> <Toolbar.Filler /> - <Toolbar.SearchField - placeholder="Search…" - hints={hints} - onSearch={Extensions.searchHints} - onHint={Extensions.onSearchHint} - onSelect={onSelectedHints} - /> <IvettePrefs.ThemeSwitchTool /> <IvettePrefs.FontTools /> + <Toolbar.ModalActionField /> <Toolbar.Button icon="ITEMS.GRID" title="Customize Main View" diff --git a/ivette/src/renderer/Extensions.tsx b/ivette/src/renderer/Extensions.tsx index 2d33b9f1dc520ca6f916bfc61161923db6f73a48..145f9b66b1edf59e1dbe3064a763f7ecd83f95d4 100644 --- a/ivette/src/renderer/Extensions.tsx +++ b/ivette/src/renderer/Extensions.tsx @@ -28,84 +28,6 @@ import React from 'react'; import * as Dome from 'dome'; -import { Hint } from 'dome/frame/toolbars'; - -/* --------------------------------------------------------------------------*/ -/* --- Search Hints ---*/ -/* --------------------------------------------------------------------------*/ - -export interface HintCallback { - (): void; -} - -export interface SearchHint extends Hint<HintCallback> { - rank?: number; -} - -function bySearchHint(a: SearchHint, b: SearchHint) { - const ra = a.rank ?? 0; - const rb = b.rank ?? 0; - if (ra < rb) return -1; - if (ra > rb) return +1; - return 0; -} - -export interface SearchEngine { - id: string; - search: (pattern: string) => Promise<SearchHint[]>; -} - -const NEWHINTS = new Dome.Event('ivette.hints'); -const HINTLOOKUP = new Map<string, SearchEngine>(); -const HINTS = new Map<string, SearchHint[]>(); -let CURRENT = ''; - -export function updateHints() { - if (CURRENT !== '') - NEWHINTS.emit(); -} - -export function registerHints(E: SearchEngine) { - HINTLOOKUP.set(E.id, E); -} - -export function searchHints(pattern: string) { - if (pattern === '') { - CURRENT = ''; - HINTS.clear(); - NEWHINTS.emit(); - } else { - const REF = pattern; - CURRENT = pattern; - HINTLOOKUP.forEach((E: SearchEngine) => { - E.search(REF).then((hs) => { - if (REF === CURRENT) { - HINTS.set(E.id, hs); - NEWHINTS.emit(); - } - }).catch(() => { - if (REF === CURRENT) { - HINTS.delete(E.id); - NEWHINTS.emit(); - } - }); - }); - } -} - -export function onSearchHint(h: SearchHint) { - h.value(); -} - -export function useSearchHints() { - const [hints, setHints] = React.useState<SearchHint[]>([]); - Dome.useEvent(NEWHINTS, () => { - let hs: SearchHint[] = []; - HINTS.forEach((rhs) => { hs = hs.concat(rhs); }); - setHints(hs.sort(bySearchHint)); - }); - return hints; -} /* --------------------------------------------------------------------------*/ /* --- Extension Elements ---*/ diff --git a/nix/default.nix b/nix/default.nix index d159657d295dcd3f032d8eb3edc4c02ffb38e451..7f9c00760af0fae2dc90df774c74c67500baf140 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -318,7 +318,6 @@ pkgs.lib.makeExtensible [ pkgs.getopt pkgs.libxslt pkgs.libxml2 pkgs.autoPatchelfHook pkgs.swiProlog stdenv.cc.cc.lib ]; }; - counter_examples_src = plugins.counter-examples.src; genassigns_src = plugins.genassigns.src; frama_clang_src = plugins.frama-clang.src; pathcrawler_src = plugins.pathcrawler.src; @@ -333,8 +332,6 @@ pkgs.lib.makeExtensible patchShebangs . ''; postUnpack = '' - cp -r --preserve=mode "$counter_examples_src" "$sourceRoot/src/plugins/counter-examples" - chmod -R u+w -- "$sourceRoot/src/plugins/counter-examples" cp -r --preserve=mode "$genassigns_src" "$sourceRoot/src/plugins/genassigns" chmod -R u+w -- "$sourceRoot/src/plugins/genassigns" # cp -r --preserve=mode "$frama_clang_src" "$sourceRoot/src/plugins/frama-clang" diff --git a/share/libc/unistd.h b/share/libc/unistd.h index f26a5b8ed9b284074e578891a1bd46a8c3d6d20b..4842b7958b5be55538779d46fb59be49aad8e092 100644 --- a/share/libc/unistd.h +++ b/share/libc/unistd.h @@ -1009,8 +1009,20 @@ extern ssize_t pwrite(int, const void *, size_t, off_t); assigns __fc_fds[fd] \from __fc_fds[fd]; assigns \result, *((char *)buf+(0..count-1)) \from indirect:__fc_fds[fd], indirect:count; - ensures result_error_or_read_length: 0 <= \result <= count || \result == -1; - ensures initialization:buf: \initialized(((char*)buf)+(0..\result-1)); + behavior full_read: + assumes nondet_small_count: Frama_C_entropy_source && count <= SSIZE_MAX; + ensures res_full: \result == count; + ensures res_init:initialization: \initialized(((char*)buf)+(0..count-1)); + behavior large_read_implementation_defined: + assumes nondet_large_count: Frama_C_entropy_source && count > SSIZE_MAX; + ensures res_init:initialization: \initialized(((char*)buf)+(0..count-1)); + behavior partial_or_error: + assumes nondet: !Frama_C_entropy_source; + ensures result_error_or_read_length: -1 <= \result < count; + ensures initialization:buf: \initialized(((char*)buf)+(0..\result-1)); + //note: for \result == -1, the above range is empty, as intended + disjoint behaviors; + complete behaviors; */ extern ssize_t read(int fd, void *buf, size_t count); diff --git a/src/kernel_services/ast_queries/file.ml b/src/kernel_services/ast_queries/file.ml index 2ef99461cb121d60fe36e8073e4bfd579743b693..fa0bad4dd8b1587b3c67bd25ce449a8b068048ca 100644 --- a/src/kernel_services/ast_queries/file.ml +++ b/src/kernel_services/ast_queries/file.ml @@ -449,14 +449,7 @@ let concat_strs ?(pre="") ?(sep=" ") l = let adjust_pwd fp cpp_command = if Kernel.JsonCompilationDatabase.is_set () then - (* TODO: we currently use PWD instead of Sys.getcwd () because OCaml has - no function in its stdlib to resolve symbolic links (e.g. realpath) - for a given path. 'getcwd' always resolves them, but if the user - supplies a path with symbolic links, this may cause issues. - Instead of forcing the user to always provide resolved paths, we - currently choose to never resolve them. - We only resort to getcwd() to avoid issues when PWD does not exist. *) - let cwd = try Unix.getenv "PWD" with Not_found -> Sys.getcwd () in + let cwd = Filepath.pwd () in let dir = match Json_compilation_database.get_dir fp with | None -> cwd @@ -577,10 +570,10 @@ let abort_with_detailed_pp_message f cpp_command = else "" in Kernel.abort - "failed to run: %s@\n\ + "failed to run: %s\n(PWD: %s)@\n\ %sSee chapter \"Preparing the Sources\" in the Frama-C user manual \ for more details." - cpp_command possible_cause + cpp_command (Filepath.pwd ()) possible_cause let parse_cabs cpp_command = function | NoCPP f -> diff --git a/src/libraries/utils/filepath.ml b/src/libraries/utils/filepath.ml index b708fbee2e1d4792fc755122d7797742fa71e877..2411ec2934b266e943af64fb32db4f1567a512a0 100644 --- a/src/libraries/utils/filepath.ml +++ b/src/libraries/utils/filepath.ml @@ -323,6 +323,8 @@ type position = let pp_pos fmt pos = Format.fprintf fmt "%a:%d" Normalized.pretty pos.pos_path pos.pos_lnum +let pwd () = try Unix.getenv "PWD" with Not_found -> Sys.getcwd () + (** Initialize using Config *) let add_symbolic_dir_list name = function | [d] -> add_symbolic_dir name d diff --git a/src/libraries/utils/filepath.mli b/src/libraries/utils/filepath.mli index 9154110c09dc4075338541fd42940c68d124d333..4844f2a54ae4b5d0a85cf5f9836596affed48d18 100644 --- a/src/libraries/utils/filepath.mli +++ b/src/libraries/utils/filepath.mli @@ -209,6 +209,21 @@ type position = *) val pp_pos : Format.formatter -> position -> unit +(** Return the current working directory. + Currently uses the environment's PWD instead of Sys.getcwd () because OCaml + has no function in its stdlib to resolve symbolic links (e.g. realpath) + for a given path. 'getcwd' always resolves them, but if the user + supplies a path with symbolic links, this may cause issues. + Instead of forcing the user to always provide resolved paths, we + currently choose to never resolve them. + We only resort to getcwd() to avoid issues when PWD does not exist. + Note that this function does not validate that PWD has not been tampered + with. + + @since Frama-C+dev +*) +val pwd : unit -> string + (* Local Variables: compile-command: "make -C ../../.." diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in index 40ea1ab244877dab48d46eb239d5cfe14a7dfb77..cc93b4ebe1c693b6c1b6acb1f0f9724928089b4c 100644 --- a/src/plugins/e-acsl/Makefile.in +++ b/src/plugins/e-acsl/Makefile.in @@ -370,8 +370,9 @@ EACSL_DISTRIB_TESTS = \ $(dir)/test_config_dev \ $(dir)/oracle/* \ $(dir)/oracle_dev/* \ - ) - + ) \ + tests/builtin/utils \ + tests/format/utils EACSL_RTL_FILES = $(EACSL_RTL_SRC) diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c index 4dd51eba552684f1387cb630eb11d80a311f6e0a..e450a9ed80b036c3ae34073196f4fec84259b728 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c @@ -13,11 +13,6 @@ #include "sys/wait.h" #include "time.h" #include "unistd.h" -char *__gen_e_acsl_literal_string_27; -char *__gen_e_acsl_literal_string_26; -char *__gen_e_acsl_literal_string_25; -char *__gen_e_acsl_literal_string_24; -char *__gen_e_acsl_literal_string_23; char *__gen_e_acsl_literal_string_22; char *__gen_e_acsl_literal_string_21; char *__gen_e_acsl_literal_string_20; @@ -35,6 +30,11 @@ char *__gen_e_acsl_literal_string_9; char *__gen_e_acsl_literal_string_30; char *__gen_e_acsl_literal_string_29; char *__gen_e_acsl_literal_string_28; +char *__gen_e_acsl_literal_string_27; +char *__gen_e_acsl_literal_string_26; +char *__gen_e_acsl_literal_string_25; +char *__gen_e_acsl_literal_string_24; +char *__gen_e_acsl_literal_string_23; char *__gen_e_acsl_literal_string_7; char *__gen_e_acsl_literal_string_6; char *__gen_e_acsl_literal_string; @@ -119,7 +119,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data.pred_txt = "\\initialized(&dest[0 .. 1])"; __gen_e_acsl_assert_data.file = "strcat.c"; __gen_e_acsl_assert_data.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data.line = 16; + __gen_e_acsl_assert_data.line = 21; __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data); __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } @@ -155,7 +155,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_2.pred_txt = "!\\initialized(&dest[2 .. 3])"; __gen_e_acsl_assert_data_2.file = "strcat.c"; __gen_e_acsl_assert_data_2.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_2.line = 17; + __gen_e_acsl_assert_data_2.line = 22; __e_acsl_assert(! __gen_e_acsl_initialized_2, & __gen_e_acsl_assert_data_2); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); @@ -192,7 +192,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&src[0 .. 1])"; __gen_e_acsl_assert_data_3.file = "strcat.c"; __gen_e_acsl_assert_data_3.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_3.line = 18; + __gen_e_acsl_assert_data_3.line = 23; __e_acsl_assert(__gen_e_acsl_initialized_3, & __gen_e_acsl_assert_data_3); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); @@ -230,7 +230,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_4.pred_txt = "\\initialized(&dest[0 .. 2])"; __gen_e_acsl_assert_data_4.file = "strcat.c"; __gen_e_acsl_assert_data_4.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_4.line = 21; + __gen_e_acsl_assert_data_4.line = 26; __e_acsl_assert(__gen_e_acsl_initialized_4, & __gen_e_acsl_assert_data_4); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); @@ -254,7 +254,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&dest[3])"; __gen_e_acsl_assert_data_5.file = "strcat.c"; __gen_e_acsl_assert_data_5.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_5.line = 22; + __gen_e_acsl_assert_data_5.line = 27; __e_acsl_assert(! __gen_e_acsl_initialized_5, & __gen_e_acsl_assert_data_5); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); @@ -302,7 +302,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&dest_0[0 .. 1])"; __gen_e_acsl_assert_data_6.file = "strcat.c"; __gen_e_acsl_assert_data_6.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_6.line = 28; + __gen_e_acsl_assert_data_6.line = 33; __e_acsl_assert(__gen_e_acsl_initialized_6, & __gen_e_acsl_assert_data_6); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); @@ -340,7 +340,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&dest_0[2 .. 3])"; __gen_e_acsl_assert_data_7.file = "strcat.c"; __gen_e_acsl_assert_data_7.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_7.line = 29; + __gen_e_acsl_assert_data_7.line = 34; __e_acsl_assert(! __gen_e_acsl_initialized_7, & __gen_e_acsl_assert_data_7); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); @@ -378,7 +378,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_8.pred_txt = "\\initialized(&src_0[0 .. 2])"; __gen_e_acsl_assert_data_8.file = "strcat.c"; __gen_e_acsl_assert_data_8.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_8.line = 30; + __gen_e_acsl_assert_data_8.line = 35; __e_acsl_assert(__gen_e_acsl_initialized_8, & __gen_e_acsl_assert_data_8); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); @@ -417,7 +417,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&dest_0[0 .. 2])"; __gen_e_acsl_assert_data_9.file = "strcat.c"; __gen_e_acsl_assert_data_9.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_9.line = 33; + __gen_e_acsl_assert_data_9.line = 38; __e_acsl_assert(__gen_e_acsl_initialized_9, & __gen_e_acsl_assert_data_9); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); @@ -441,7 +441,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&dest_0[3])"; __gen_e_acsl_assert_data_10.file = "strcat.c"; __gen_e_acsl_assert_data_10.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_10.line = 34; + __gen_e_acsl_assert_data_10.line = 39; __e_acsl_assert(! __gen_e_acsl_initialized_10, & __gen_e_acsl_assert_data_10); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); @@ -489,7 +489,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&dest_1[0 .. 1])"; __gen_e_acsl_assert_data_11.file = "strcat.c"; __gen_e_acsl_assert_data_11.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_11.line = 40; + __gen_e_acsl_assert_data_11.line = 45; __e_acsl_assert(__gen_e_acsl_initialized_11, & __gen_e_acsl_assert_data_11); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); @@ -527,7 +527,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&dest_1[2 .. 3])"; __gen_e_acsl_assert_data_12.file = "strcat.c"; __gen_e_acsl_assert_data_12.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_12.line = 41; + __gen_e_acsl_assert_data_12.line = 46; __e_acsl_assert(! __gen_e_acsl_initialized_12, & __gen_e_acsl_assert_data_12); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); @@ -565,7 +565,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_13.pred_txt = "\\initialized(&src_1[0 .. 1])"; __gen_e_acsl_assert_data_13.file = "strcat.c"; __gen_e_acsl_assert_data_13.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_13.line = 42; + __gen_e_acsl_assert_data_13.line = 47; __e_acsl_assert(__gen_e_acsl_initialized_13, & __gen_e_acsl_assert_data_13); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13); @@ -604,7 +604,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_14.pred_txt = "\\initialized(&dest_1[0 .. 2])"; __gen_e_acsl_assert_data_14.file = "strcat.c"; __gen_e_acsl_assert_data_14.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_14.line = 45; + __gen_e_acsl_assert_data_14.line = 50; __e_acsl_assert(__gen_e_acsl_initialized_14, & __gen_e_acsl_assert_data_14); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14); @@ -628,7 +628,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_15.pred_txt = "!\\initialized(&dest_1[3])"; __gen_e_acsl_assert_data_15.file = "strcat.c"; __gen_e_acsl_assert_data_15.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_15.line = 46; + __gen_e_acsl_assert_data_15.line = 51; __e_acsl_assert(! __gen_e_acsl_initialized_15, & __gen_e_acsl_assert_data_15); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15); @@ -828,116 +828,116 @@ void __e_acsl_globals_init(void) static char __e_acsl_already_run = 0; if (! __e_acsl_already_run) { __e_acsl_already_run = 1; - __gen_e_acsl_literal_string_27 = "strcat.c:99"; - __e_acsl_store_block((void *)__gen_e_acsl_literal_string_27, - sizeof("strcat.c:99")); - __e_acsl_full_init((void *)__gen_e_acsl_literal_string_27); - __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_27); - __gen_e_acsl_literal_string_26 = "strcat.c:98"; - __e_acsl_store_block((void *)__gen_e_acsl_literal_string_26, - sizeof("strcat.c:98")); - __e_acsl_full_init((void *)__gen_e_acsl_literal_string_26); - __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_26); - __gen_e_acsl_literal_string_25 = "strcat.c:97"; - __e_acsl_store_block((void *)__gen_e_acsl_literal_string_25, - sizeof("strcat.c:97")); - __e_acsl_full_init((void *)__gen_e_acsl_literal_string_25); - __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_25); - __gen_e_acsl_literal_string_24 = "strcat.c:96"; - __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24, - sizeof("strcat.c:96")); - __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24); - __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24); - __gen_e_acsl_literal_string_23 = "strcat.c:95"; - __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23, - sizeof("strcat.c:95")); - __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23); - __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23); - __gen_e_acsl_literal_string_22 = "strcat.c:94"; + __gen_e_acsl_literal_string_22 = "strcat.c:99"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_22, - sizeof("strcat.c:94")); + sizeof("strcat.c:99")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_22); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_22); - __gen_e_acsl_literal_string_21 = "strcat.c:93"; + __gen_e_acsl_literal_string_21 = "strcat.c:98"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21, - sizeof("strcat.c:93")); + sizeof("strcat.c:98")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21); - __gen_e_acsl_literal_string_20 = "strcat.c:80"; + __gen_e_acsl_literal_string_20 = "strcat.c:85"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_20, - sizeof("strcat.c:80")); + sizeof("strcat.c:85")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_20); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_20); - __gen_e_acsl_literal_string_19 = "strcat.c:79"; + __gen_e_acsl_literal_string_19 = "strcat.c:84"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19, - sizeof("strcat.c:79")); + sizeof("strcat.c:84")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19); - __gen_e_acsl_literal_string_18 = "strcat.c:78"; + __gen_e_acsl_literal_string_18 = "strcat.c:83"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18, - sizeof("strcat.c:78")); + sizeof("strcat.c:83")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18); - __gen_e_acsl_literal_string_17 = "strcat.c:77"; + __gen_e_acsl_literal_string_17 = "strcat.c:82"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_17, - sizeof("strcat.c:77")); + sizeof("strcat.c:82")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_17); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_17); - __gen_e_acsl_literal_string_16 = "strcat.c:76"; + __gen_e_acsl_literal_string_16 = "strcat.c:81"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16, - sizeof("strcat.c:76")); + sizeof("strcat.c:81")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16); - __gen_e_acsl_literal_string_15 = "strcat.c:75"; + __gen_e_acsl_literal_string_15 = "strcat.c:80"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15, - sizeof("strcat.c:75")); + sizeof("strcat.c:80")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15); - __gen_e_acsl_literal_string_14 = "strcat.c:74"; + __gen_e_acsl_literal_string_14 = "strcat.c:79"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14, - sizeof("strcat.c:74")); + sizeof("strcat.c:79")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14); - __gen_e_acsl_literal_string_13 = "strcat.c:73"; + __gen_e_acsl_literal_string_13 = "strcat.c:78"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13, - sizeof("strcat.c:73")); + sizeof("strcat.c:78")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13); - __gen_e_acsl_literal_string_12 = "strcat.c:72"; + __gen_e_acsl_literal_string_12 = "strcat.c:77"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12, - sizeof("strcat.c:72")); + sizeof("strcat.c:77")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12); - __gen_e_acsl_literal_string_11 = "strcat.c:71"; + __gen_e_acsl_literal_string_11 = "strcat.c:76"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11, - sizeof("strcat.c:71")); + sizeof("strcat.c:76")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11); - __gen_e_acsl_literal_string_10 = "strcat.c:70"; + __gen_e_acsl_literal_string_10 = "strcat.c:75"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10, - sizeof("strcat.c:70")); + sizeof("strcat.c:75")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10); - __gen_e_acsl_literal_string_9 = "strcat.c:68"; + __gen_e_acsl_literal_string_9 = "strcat.c:73"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9, - sizeof("strcat.c:68")); + sizeof("strcat.c:73")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9); - __gen_e_acsl_literal_string_30 = "strcat.c:103"; + __gen_e_acsl_literal_string_30 = "strcat.c:108"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_30, - sizeof("strcat.c:103")); + sizeof("strcat.c:108")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_30); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_30); - __gen_e_acsl_literal_string_29 = "strcat.c:102"; + __gen_e_acsl_literal_string_29 = "strcat.c:107"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_29, - sizeof("strcat.c:102")); + sizeof("strcat.c:107")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_29); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_29); - __gen_e_acsl_literal_string_28 = "strcat.c:101"; + __gen_e_acsl_literal_string_28 = "strcat.c:106"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_28, - sizeof("strcat.c:101")); + sizeof("strcat.c:106")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_28); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_28); + __gen_e_acsl_literal_string_27 = "strcat.c:104"; + __e_acsl_store_block((void *)__gen_e_acsl_literal_string_27, + sizeof("strcat.c:104")); + __e_acsl_full_init((void *)__gen_e_acsl_literal_string_27); + __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_27); + __gen_e_acsl_literal_string_26 = "strcat.c:103"; + __e_acsl_store_block((void *)__gen_e_acsl_literal_string_26, + sizeof("strcat.c:103")); + __e_acsl_full_init((void *)__gen_e_acsl_literal_string_26); + __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_26); + __gen_e_acsl_literal_string_25 = "strcat.c:102"; + __e_acsl_store_block((void *)__gen_e_acsl_literal_string_25, + sizeof("strcat.c:102")); + __e_acsl_full_init((void *)__gen_e_acsl_literal_string_25); + __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_25); + __gen_e_acsl_literal_string_24 = "strcat.c:101"; + __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24, + sizeof("strcat.c:101")); + __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24); + __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24); + __gen_e_acsl_literal_string_23 = "strcat.c:100"; + __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23, + sizeof("strcat.c:100")); + __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23); + __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23); __gen_e_acsl_literal_string_7 = "abcd"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7, sizeof("abcd")); diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c index e709190a8d4e6648e637df959d6d53e36a92fd4c..7a71fae35bc987b44b79bd14da2deef8cacce96c 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c @@ -391,124 +391,124 @@ void __e_acsl_globals_init(void) static char __e_acsl_already_run = 0; if (! __e_acsl_already_run) { __e_acsl_already_run = 1; - __gen_e_acsl_literal_string_32 = "strcmp.c:90"; + __gen_e_acsl_literal_string_32 = "strcmp.c:95"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_32, - sizeof("strcmp.c:90")); + sizeof("strcmp.c:95")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_32); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_32); - __gen_e_acsl_literal_string_31 = "strcmp.c:87"; + __gen_e_acsl_literal_string_31 = "strcmp.c:92"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_31, - sizeof("strcmp.c:87")); + sizeof("strcmp.c:92")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_31); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_31); - __gen_e_acsl_literal_string_30 = "strcmp.c:86"; + __gen_e_acsl_literal_string_30 = "strcmp.c:91"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_30, - sizeof("strcmp.c:86")); + sizeof("strcmp.c:91")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_30); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_30); - __gen_e_acsl_literal_string_29 = "strcmp.c:83"; + __gen_e_acsl_literal_string_29 = "strcmp.c:88"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_29, - sizeof("strcmp.c:83")); + sizeof("strcmp.c:88")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_29); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_29); - __gen_e_acsl_literal_string_28 = "strcmp.c:80"; + __gen_e_acsl_literal_string_28 = "strcmp.c:85"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_28, - sizeof("strcmp.c:80")); + sizeof("strcmp.c:85")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_28); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_28); - __gen_e_acsl_literal_string_27 = "strcmp.c:77"; + __gen_e_acsl_literal_string_27 = "strcmp.c:82"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_27, - sizeof("strcmp.c:77")); + sizeof("strcmp.c:82")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_27); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_27); - __gen_e_acsl_literal_string_26 = "strcmp.c:75"; + __gen_e_acsl_literal_string_26 = "strcmp.c:80"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_26, - sizeof("strcmp.c:75")); + sizeof("strcmp.c:80")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_26); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_26); - __gen_e_acsl_literal_string_25 = "strcmp.c:72"; + __gen_e_acsl_literal_string_25 = "strcmp.c:77"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_25, - sizeof("strcmp.c:72")); + sizeof("strcmp.c:77")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_25); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_25); - __gen_e_acsl_literal_string_23 = "strcmp.c:68"; + __gen_e_acsl_literal_string_23 = "strcmp.c:73"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23, - sizeof("strcmp.c:68")); + sizeof("strcmp.c:73")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23); - __gen_e_acsl_literal_string_22 = "strcmp.c:67"; + __gen_e_acsl_literal_string_22 = "strcmp.c:72"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_22, - sizeof("strcmp.c:67")); + sizeof("strcmp.c:72")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_22); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_22); - __gen_e_acsl_literal_string_21 = "strcmp.c:65"; + __gen_e_acsl_literal_string_21 = "strcmp.c:70"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21, - sizeof("strcmp.c:65")); + sizeof("strcmp.c:70")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21); - __gen_e_acsl_literal_string_20 = "strcmp.c:64"; + __gen_e_acsl_literal_string_20 = "strcmp.c:69"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_20, - sizeof("strcmp.c:64")); + sizeof("strcmp.c:69")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_20); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_20); - __gen_e_acsl_literal_string_19 = "strcmp.c:63"; + __gen_e_acsl_literal_string_19 = "strcmp.c:68"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19, - sizeof("strcmp.c:63")); + sizeof("strcmp.c:68")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19); - __gen_e_acsl_literal_string_18 = "strcmp.c:53"; + __gen_e_acsl_literal_string_18 = "strcmp.c:58"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18, - sizeof("strcmp.c:53")); + sizeof("strcmp.c:58")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18); - __gen_e_acsl_literal_string_17 = "strcmp.c:52"; + __gen_e_acsl_literal_string_17 = "strcmp.c:57"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_17, - sizeof("strcmp.c:52")); + sizeof("strcmp.c:57")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_17); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_17); - __gen_e_acsl_literal_string_16 = "strcmp.c:47"; + __gen_e_acsl_literal_string_16 = "strcmp.c:52"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16, - sizeof("strcmp.c:47")); + sizeof("strcmp.c:52")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16); - __gen_e_acsl_literal_string_15 = "strcmp.c:46"; + __gen_e_acsl_literal_string_15 = "strcmp.c:51"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15, - sizeof("strcmp.c:46")); + sizeof("strcmp.c:51")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15); - __gen_e_acsl_literal_string_14 = "strcmp.c:44"; + __gen_e_acsl_literal_string_14 = "strcmp.c:49"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14, - sizeof("strcmp.c:44")); + sizeof("strcmp.c:49")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14); - __gen_e_acsl_literal_string_13 = "strcmp.c:41"; + __gen_e_acsl_literal_string_13 = "strcmp.c:46"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13, - sizeof("strcmp.c:41")); + sizeof("strcmp.c:46")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13); - __gen_e_acsl_literal_string_12 = "strcmp.c:39"; + __gen_e_acsl_literal_string_12 = "strcmp.c:44"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12, - sizeof("strcmp.c:39")); + sizeof("strcmp.c:44")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12); - __gen_e_acsl_literal_string_11 = "strcmp.c:36"; + __gen_e_acsl_literal_string_11 = "strcmp.c:41"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11, - sizeof("strcmp.c:36")); + sizeof("strcmp.c:41")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11); - __gen_e_acsl_literal_string_10 = "strcmp.c:33"; + __gen_e_acsl_literal_string_10 = "strcmp.c:38"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10, - sizeof("strcmp.c:33")); + sizeof("strcmp.c:38")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10); - __gen_e_acsl_literal_string_9 = "strcmp.c:32"; + __gen_e_acsl_literal_string_9 = "strcmp.c:37"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9, - sizeof("strcmp.c:32")); + sizeof("strcmp.c:37")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9); - __gen_e_acsl_literal_string_8 = "strcmp.c:31"; + __gen_e_acsl_literal_string_8 = "strcmp.c:36"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8, - sizeof("strcmp.c:31")); + sizeof("strcmp.c:36")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8); __gen_e_acsl_literal_string_7 = "comparison failure: %d == %d\n"; diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c index 40ab8b6fa9ca3559cda06b4294bce0ea0d81f7bf..fbb489b4f7394002f139c0ef4dbc26e908949c09 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c @@ -140,7 +140,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&dest[0 .. 3])"; __gen_e_acsl_assert_data.file = "strcpy.c"; __gen_e_acsl_assert_data.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data.line = 15; + __gen_e_acsl_assert_data.line = 20; __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data); __e_acsl_assert_clean(& __gen_e_acsl_assert_data); } @@ -176,7 +176,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&src[0 .. 1])"; __gen_e_acsl_assert_data_2.file = "strcpy.c"; __gen_e_acsl_assert_data_2.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_2.line = 16; + __gen_e_acsl_assert_data_2.line = 21; __e_acsl_assert(__gen_e_acsl_initialized_2, & __gen_e_acsl_assert_data_2); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2); @@ -214,7 +214,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&dest[0 .. 1])"; __gen_e_acsl_assert_data_3.file = "strcpy.c"; __gen_e_acsl_assert_data_3.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_3.line = 19; + __gen_e_acsl_assert_data_3.line = 24; __e_acsl_assert(__gen_e_acsl_initialized_3, & __gen_e_acsl_assert_data_3); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3); @@ -251,7 +251,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&dest[2 .. 3])"; __gen_e_acsl_assert_data_4.file = "strcpy.c"; __gen_e_acsl_assert_data_4.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_4.line = 20; + __gen_e_acsl_assert_data_4.line = 25; __e_acsl_assert(! __gen_e_acsl_initialized_4, & __gen_e_acsl_assert_data_4); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4); @@ -298,7 +298,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&dest_0[0 .. 3])"; __gen_e_acsl_assert_data_5.file = "strcpy.c"; __gen_e_acsl_assert_data_5.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_5.line = 25; + __gen_e_acsl_assert_data_5.line = 30; __e_acsl_assert(! __gen_e_acsl_initialized_5, & __gen_e_acsl_assert_data_5); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5); @@ -336,7 +336,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&src_0[0 .. 3])"; __gen_e_acsl_assert_data_6.file = "strcpy.c"; __gen_e_acsl_assert_data_6.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_6.line = 26; + __gen_e_acsl_assert_data_6.line = 31; __e_acsl_assert(__gen_e_acsl_initialized_6, & __gen_e_acsl_assert_data_6); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6); @@ -361,7 +361,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_7.pred_txt = "\\initialized((char *)dest_0)"; __gen_e_acsl_assert_data_7.file = "strcpy.c"; __gen_e_acsl_assert_data_7.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_7.line = 29; + __gen_e_acsl_assert_data_7.line = 34; __e_acsl_assert(__gen_e_acsl_initialized_7, & __gen_e_acsl_assert_data_7); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7); @@ -399,7 +399,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(&dest_0[1 .. 3])"; __gen_e_acsl_assert_data_8.file = "strcpy.c"; __gen_e_acsl_assert_data_8.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_8.line = 30; + __gen_e_acsl_assert_data_8.line = 35; __e_acsl_assert(! __gen_e_acsl_initialized_8, & __gen_e_acsl_assert_data_8); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8); @@ -446,7 +446,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_9.pred_txt = "!\\initialized(&dest_1[0 .. 3])"; __gen_e_acsl_assert_data_9.file = "strcpy.c"; __gen_e_acsl_assert_data_9.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_9.line = 35; + __gen_e_acsl_assert_data_9.line = 40; __e_acsl_assert(! __gen_e_acsl_initialized_9, & __gen_e_acsl_assert_data_9); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9); @@ -484,7 +484,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_10.pred_txt = "\\initialized(&src_1[0 .. 3])"; __gen_e_acsl_assert_data_10.file = "strcpy.c"; __gen_e_acsl_assert_data_10.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_10.line = 36; + __gen_e_acsl_assert_data_10.line = 41; __e_acsl_assert(__gen_e_acsl_initialized_10, & __gen_e_acsl_assert_data_10); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10); @@ -523,7 +523,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&dest_1[0 .. 2])"; __gen_e_acsl_assert_data_11.file = "strcpy.c"; __gen_e_acsl_assert_data_11.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_11.line = 39; + __gen_e_acsl_assert_data_11.line = 44; __e_acsl_assert(__gen_e_acsl_initialized_11, & __gen_e_acsl_assert_data_11); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11); @@ -547,7 +547,7 @@ void test_memory_tracking(void) __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&dest_1[3])"; __gen_e_acsl_assert_data_12.file = "strcpy.c"; __gen_e_acsl_assert_data_12.fct = "test_memory_tracking"; - __gen_e_acsl_assert_data_12.line = 40; + __gen_e_acsl_assert_data_12.line = 45; __e_acsl_assert(! __gen_e_acsl_initialized_12, & __gen_e_acsl_assert_data_12); __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12); @@ -803,89 +803,89 @@ void __e_acsl_globals_init(void) static char __e_acsl_already_run = 0; if (! __e_acsl_already_run) { __e_acsl_already_run = 1; - __gen_e_acsl_literal_string_24 = "strcpy.c:76"; + __gen_e_acsl_literal_string_24 = "strcpy.c:81"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24, - sizeof("strcpy.c:76")); + sizeof("strcpy.c:81")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24); - __gen_e_acsl_literal_string_23 = "strcpy.c:75"; + __gen_e_acsl_literal_string_23 = "strcpy.c:80"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23, - sizeof("strcpy.c:75")); + sizeof("strcpy.c:80")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23); - __gen_e_acsl_literal_string_22 = "strcpy.c:74"; + __gen_e_acsl_literal_string_22 = "strcpy.c:79"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_22, - sizeof("strcpy.c:74")); + sizeof("strcpy.c:79")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_22); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_22); - __gen_e_acsl_literal_string_21 = "strcpy.c:73"; + __gen_e_acsl_literal_string_21 = "strcpy.c:78"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21, - sizeof("strcpy.c:73")); + sizeof("strcpy.c:78")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21); - __gen_e_acsl_literal_string_20 = "strcpy.c:72"; + __gen_e_acsl_literal_string_20 = "strcpy.c:77"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_20, - sizeof("strcpy.c:72")); + sizeof("strcpy.c:77")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_20); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_20); - __gen_e_acsl_literal_string_19 = "strcpy.c:71"; + __gen_e_acsl_literal_string_19 = "strcpy.c:76"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19, - sizeof("strcpy.c:71")); + sizeof("strcpy.c:76")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19); - __gen_e_acsl_literal_string_18 = "strcpy.c:70"; + __gen_e_acsl_literal_string_18 = "strcpy.c:75"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18, - sizeof("strcpy.c:70")); + sizeof("strcpy.c:75")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18); - __gen_e_acsl_literal_string_17 = "strcpy.c:69"; + __gen_e_acsl_literal_string_17 = "strcpy.c:74"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_17, - sizeof("strcpy.c:69")); + sizeof("strcpy.c:74")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_17); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_17); - __gen_e_acsl_literal_string_16 = "strcpy.c:66"; + __gen_e_acsl_literal_string_16 = "strcpy.c:71"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16, - sizeof("strcpy.c:66")); + sizeof("strcpy.c:71")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16); - __gen_e_acsl_literal_string_15 = "strcpy.c:65"; + __gen_e_acsl_literal_string_15 = "strcpy.c:70"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15, - sizeof("strcpy.c:65")); + sizeof("strcpy.c:70")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15); - __gen_e_acsl_literal_string_14 = "strcpy.c:64"; + __gen_e_acsl_literal_string_14 = "strcpy.c:69"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14, - sizeof("strcpy.c:64")); + sizeof("strcpy.c:69")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14); - __gen_e_acsl_literal_string_13 = "strcpy.c:63"; + __gen_e_acsl_literal_string_13 = "strcpy.c:68"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13, - sizeof("strcpy.c:63")); + sizeof("strcpy.c:68")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13); - __gen_e_acsl_literal_string_12 = "strcpy.c:62"; + __gen_e_acsl_literal_string_12 = "strcpy.c:67"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12, - sizeof("strcpy.c:62")); + sizeof("strcpy.c:67")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12); - __gen_e_acsl_literal_string_11 = "strcpy.c:61"; + __gen_e_acsl_literal_string_11 = "strcpy.c:66"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11, - sizeof("strcpy.c:61")); + sizeof("strcpy.c:66")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11); - __gen_e_acsl_literal_string_10 = "strcpy.c:60"; + __gen_e_acsl_literal_string_10 = "strcpy.c:65"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10, - sizeof("strcpy.c:60")); + sizeof("strcpy.c:65")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10); - __gen_e_acsl_literal_string_9 = "strcpy.c:59"; + __gen_e_acsl_literal_string_9 = "strcpy.c:64"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9, - sizeof("strcpy.c:59")); + sizeof("strcpy.c:64")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9); - __gen_e_acsl_literal_string_7 = "strcpy.c:58"; + __gen_e_acsl_literal_string_7 = "strcpy.c:63"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_7, - sizeof("strcpy.c:58")); + sizeof("strcpy.c:63")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7); __gen_e_acsl_literal_string_6 = "abcd"; diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c index 0c6854b4d1ccfd0a30bc8c2b55bb5fcea15973a5..76ab282dbc748999d8c630347c99fcd3a09c43d0 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c +++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c @@ -375,39 +375,39 @@ void __e_acsl_globals_init(void) sizeof("the cat")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7); - __gen_e_acsl_literal_string_15 = "strlen.c:35"; + __gen_e_acsl_literal_string_15 = "strlen.c:40"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15, - sizeof("strlen.c:35")); + sizeof("strlen.c:40")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15); - __gen_e_acsl_literal_string_14 = "strlen.c:33"; + __gen_e_acsl_literal_string_14 = "strlen.c:38"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14, - sizeof("strlen.c:33")); + sizeof("strlen.c:38")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14); - __gen_e_acsl_literal_string_13 = "strlen.c:31"; + __gen_e_acsl_literal_string_13 = "strlen.c:36"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13, - sizeof("strlen.c:31")); + sizeof("strlen.c:36")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13); - __gen_e_acsl_literal_string_12 = "strlen.c:26"; + __gen_e_acsl_literal_string_12 = "strlen.c:31"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12, - sizeof("strlen.c:26")); + sizeof("strlen.c:31")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12); - __gen_e_acsl_literal_string_11 = "strlen.c:25"; + __gen_e_acsl_literal_string_11 = "strlen.c:30"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_11, - sizeof("strlen.c:25")); + sizeof("strlen.c:30")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_11); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_11); - __gen_e_acsl_literal_string_10 = "strlen.c:24"; + __gen_e_acsl_literal_string_10 = "strlen.c:29"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_10, - sizeof("strlen.c:24")); + sizeof("strlen.c:29")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_10); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_10); - __gen_e_acsl_literal_string_9 = "strlen.c:23"; + __gen_e_acsl_literal_string_9 = "strlen.c:28"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9, - sizeof("strlen.c:23")); + sizeof("strlen.c:28")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9); __gen_e_acsl_literal_string = "TEST %d: "; diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle index 8cf84baead995b3de933067dd24d49ba985f8966..180520653f74553d5bf54704909ad132cdbedb7b 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle +++ b/src/plugins/e-acsl/tests/builtin/oracle/strcmp.res.oracle @@ -1,4 +1,4 @@ -[variadic] strcmp.c:13: Warning: +[variadic] strcmp.c:18: Warning: Call to function fprintf with non-static format argument: assuming that parameters are coherent with the format, and that no %n specifiers are present in the actual string. [e-acsl] beginning translation. [e-acsl] Warning: annotating undefined function `abort': diff --git a/src/plugins/e-acsl/tests/builtin/oracle_dev/strcat.e-acsl.err.log b/src/plugins/e-acsl/tests/builtin/oracle_dev/strcat.e-acsl.err.log index dad25f60643f0198dfa3a8803aaf7a760ea588a1..51d925c75c07d4204a30fa1812d5af97ccdab817 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle_dev/strcat.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/builtin/oracle_dev/strcat.e-acsl.err.log @@ -1,40 +1,40 @@ -TEST 1: OK: Expected execution at strcat.c:68 -TEST 2: OK: Expected execution at strcat.c:70 +TEST 1: OK: Expected execution at strcat.c:73 +TEST 2: OK: Expected execution at strcat.c:75 strcat: insufficient space in destination string, available: 8 bytes, requires at least 9 bytes -TEST 3: OK: Expected signal at strcat.c:71 +TEST 3: OK: Expected signal at strcat.c:76 strcat: destination string string unallocated -TEST 4: OK: Expected signal at strcat.c:72 +TEST 4: OK: Expected signal at strcat.c:77 strcat: source string string unallocated -TEST 5: OK: Expected signal at strcat.c:73 +TEST 5: OK: Expected signal at strcat.c:78 strcat: destination string string unallocated -TEST 6: OK: Expected signal at strcat.c:74 +TEST 6: OK: Expected signal at strcat.c:79 strcat: source string string unallocated -TEST 7: OK: Expected signal at strcat.c:75 +TEST 7: OK: Expected signal at strcat.c:80 strcat: destination string string is not writable -TEST 8: OK: Expected signal at strcat.c:76 +TEST 8: OK: Expected signal at strcat.c:81 strcat: overlapping memory areas -TEST 9: OK: Expected signal at strcat.c:77 +TEST 9: OK: Expected signal at strcat.c:82 strcat: overlapping memory areas -TEST 10: OK: Expected signal at strcat.c:78 +TEST 10: OK: Expected signal at strcat.c:83 strcat: overlapping memory areas -TEST 11: OK: Expected signal at strcat.c:79 -TEST 12: OK: Expected execution at strcat.c:80 -TEST 13: OK: Expected execution at strcat.c:93 +TEST 11: OK: Expected signal at strcat.c:84 +TEST 12: OK: Expected execution at strcat.c:85 +TEST 13: OK: Expected execution at strcat.c:98 strncat: insufficient space in destination string, available: 8 bytes, requires at least 9 bytes -TEST 14: OK: Expected signal at strcat.c:94 +TEST 14: OK: Expected signal at strcat.c:99 strcat: destination string string unallocated -TEST 15: OK: Expected signal at strcat.c:95 +TEST 15: OK: Expected signal at strcat.c:100 strncat: source string string unallocated -TEST 16: OK: Expected signal at strcat.c:96 +TEST 16: OK: Expected signal at strcat.c:101 strcat: destination string string unallocated -TEST 17: OK: Expected signal at strcat.c:97 +TEST 17: OK: Expected signal at strcat.c:102 strncat: source string string unallocated -TEST 18: OK: Expected signal at strcat.c:98 +TEST 18: OK: Expected signal at strcat.c:103 strcat: destination string string is not writable -TEST 19: OK: Expected signal at strcat.c:99 +TEST 19: OK: Expected signal at strcat.c:104 strcat: overlapping memory areas -TEST 20: OK: Expected signal at strcat.c:101 +TEST 20: OK: Expected signal at strcat.c:106 strncat: insufficient space in destination string, available: 6 bytes, requires at least 7 bytes -TEST 21: OK: Expected signal at strcat.c:102 +TEST 21: OK: Expected signal at strcat.c:107 strcat: overlapping memory areas -TEST 22: OK: Expected signal at strcat.c:103 +TEST 22: OK: Expected signal at strcat.c:108 diff --git a/src/plugins/e-acsl/tests/builtin/oracle_dev/strcmp.e-acsl.err.log b/src/plugins/e-acsl/tests/builtin/oracle_dev/strcmp.e-acsl.err.log index 146e84288e6265f839568ec11ba1676962d893b1..782ea4149cd18b15f3599a061b54d2d11758c10e 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle_dev/strcmp.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/builtin/oracle_dev/strcmp.e-acsl.err.log @@ -1,36 +1,36 @@ -TEST 1: OK: Expected execution at strcmp.c:31 -TEST 2: OK: Expected execution at strcmp.c:32 -TEST 3: OK: Expected execution at strcmp.c:33 +TEST 1: OK: Expected execution at strcmp.c:36 +TEST 2: OK: Expected execution at strcmp.c:37 +TEST 3: OK: Expected execution at strcmp.c:38 strcmp: string 1 string not NUL-terminated -TEST 4: OK: Expected signal at strcmp.c:36 +TEST 4: OK: Expected signal at strcmp.c:41 strcmp: string 2 string not NUL-terminated -TEST 5: OK: Expected signal at strcmp.c:39 +TEST 5: OK: Expected signal at strcmp.c:44 strcmp: string 1 string not NUL-terminated -TEST 6: OK: Expected signal at strcmp.c:41 +TEST 6: OK: Expected signal at strcmp.c:46 strcmp: string 2 string not NUL-terminated -TEST 7: OK: Expected signal at strcmp.c:44 +TEST 7: OK: Expected signal at strcmp.c:49 strcmp: string 2 string unallocated -TEST 8: OK: Expected signal at strcmp.c:46 +TEST 8: OK: Expected signal at strcmp.c:51 strcmp: string 1 string unallocated -TEST 9: OK: Expected signal at strcmp.c:47 +TEST 9: OK: Expected signal at strcmp.c:52 strcmp: string 1 string unallocated -TEST 10: OK: Expected signal at strcmp.c:52 +TEST 10: OK: Expected signal at strcmp.c:57 strcmp: string 2 string unallocated -TEST 11: OK: Expected signal at strcmp.c:53 -TEST 12: OK: Expected execution at strcmp.c:63 -TEST 13: OK: Expected execution at strcmp.c:64 -TEST 14: OK: Expected execution at strcmp.c:65 -TEST 15: OK: Expected execution at strcmp.c:67 -TEST 16: OK: Expected execution at strcmp.c:68 -TEST 17: OK: Expected execution at strcmp.c:72 -TEST 18: OK: Expected execution at strcmp.c:75 -TEST 19: OK: Expected execution at strcmp.c:77 -TEST 20: OK: Expected execution at strcmp.c:80 +TEST 11: OK: Expected signal at strcmp.c:58 +TEST 12: OK: Expected execution at strcmp.c:68 +TEST 13: OK: Expected execution at strcmp.c:69 +TEST 14: OK: Expected execution at strcmp.c:70 +TEST 15: OK: Expected execution at strcmp.c:72 +TEST 16: OK: Expected execution at strcmp.c:73 +TEST 17: OK: Expected execution at strcmp.c:77 +TEST 18: OK: Expected execution at strcmp.c:80 +TEST 19: OK: Expected execution at strcmp.c:82 +TEST 20: OK: Expected execution at strcmp.c:85 strncmp: string 2 string has insufficient length -TEST 21: OK: Expected signal at strcmp.c:83 +TEST 21: OK: Expected signal at strcmp.c:88 strncmp: string 2 string has insufficient length -TEST 22: OK: Expected signal at strcmp.c:86 +TEST 22: OK: Expected signal at strcmp.c:91 strncmp: string 2 string has insufficient length -TEST 23: OK: Expected signal at strcmp.c:87 +TEST 23: OK: Expected signal at strcmp.c:92 strncmp: string 1 string has insufficient length -TEST 24: OK: Expected signal at strcmp.c:90 +TEST 24: OK: Expected signal at strcmp.c:95 diff --git a/src/plugins/e-acsl/tests/builtin/oracle_dev/strcpy.e-acsl.err.log b/src/plugins/e-acsl/tests/builtin/oracle_dev/strcpy.e-acsl.err.log index ad3ca91eedf404dbe554badbeaf0be1bd27e5642..f3cc188f4039fa248a13d21524a1a8420afdbf98 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle_dev/strcpy.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/builtin/oracle_dev/strcpy.e-acsl.err.log @@ -1,27 +1,27 @@ -TEST 1: OK: Expected execution at strcpy.c:58 -TEST 2: OK: Expected execution at strcpy.c:59 +TEST 1: OK: Expected execution at strcpy.c:63 +TEST 2: OK: Expected execution at strcpy.c:64 strlen: insufficient space in destination string, at least 5 bytes required -TEST 3: OK: Expected signal at strcpy.c:60 +TEST 3: OK: Expected signal at strcpy.c:65 strlen: destination string space unallocated or cannot be written -TEST 4: OK: Expected signal at strcpy.c:61 +TEST 4: OK: Expected signal at strcpy.c:66 strlen: destination string space unallocated or cannot be written -TEST 5: OK: Expected signal at strcpy.c:62 -TEST 6: OK: Expected execution at strcpy.c:63 +TEST 5: OK: Expected signal at strcpy.c:67 +TEST 6: OK: Expected execution at strcpy.c:68 strcpy: overlapping memory areas -TEST 7: OK: Expected signal at strcpy.c:64 -TEST 8: OK: Expected execution at strcpy.c:65 +TEST 7: OK: Expected signal at strcpy.c:69 +TEST 8: OK: Expected execution at strcpy.c:70 strcpy: overlapping memory areas -TEST 9: OK: Expected signal at strcpy.c:66 -TEST 10: OK: Expected execution at strcpy.c:69 +TEST 9: OK: Expected signal at strcpy.c:71 +TEST 10: OK: Expected execution at strcpy.c:74 strncpy: insufficient space in destination string , at least 6 bytes required -TEST 11: OK: Expected signal at strcpy.c:70 +TEST 11: OK: Expected signal at strcpy.c:75 strncpy: destination string space unallocated or cannot be written -TEST 12: OK: Expected signal at strcpy.c:71 +TEST 12: OK: Expected signal at strcpy.c:76 strncpy: destination string space unallocated or cannot be written -TEST 13: OK: Expected signal at strcpy.c:72 -TEST 14: OK: Expected execution at strcpy.c:73 +TEST 13: OK: Expected signal at strcpy.c:77 +TEST 14: OK: Expected execution at strcpy.c:78 strncpy: overlapping memory areas -TEST 15: OK: Expected signal at strcpy.c:74 -TEST 16: OK: Expected execution at strcpy.c:75 +TEST 15: OK: Expected signal at strcpy.c:79 +TEST 16: OK: Expected execution at strcpy.c:80 strncpy: overlapping memory areas -TEST 17: OK: Expected signal at strcpy.c:76 +TEST 17: OK: Expected signal at strcpy.c:81 diff --git a/src/plugins/e-acsl/tests/builtin/oracle_dev/strlen.e-acsl.err.log b/src/plugins/e-acsl/tests/builtin/oracle_dev/strlen.e-acsl.err.log index 8d7f002fa698d3aed097673b80834819806a6872..5e02496c814658f0aa801ddef8ce261eb7871aa7 100644 --- a/src/plugins/e-acsl/tests/builtin/oracle_dev/strlen.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/builtin/oracle_dev/strlen.e-acsl.err.log @@ -1,10 +1,10 @@ -TEST 1: OK: Expected execution at strlen.c:23 -TEST 2: OK: Expected execution at strlen.c:24 -TEST 3: OK: Expected execution at strlen.c:25 -TEST 4: OK: Expected execution at strlen.c:26 +TEST 1: OK: Expected execution at strlen.c:28 +TEST 2: OK: Expected execution at strlen.c:29 +TEST 3: OK: Expected execution at strlen.c:30 +TEST 4: OK: Expected execution at strlen.c:31 strlen: input string not NUL-terminated -TEST 5: OK: Expected signal at strlen.c:31 +TEST 5: OK: Expected signal at strlen.c:36 strlen: input string not NUL-terminated -TEST 6: OK: Expected signal at strlen.c:33 +TEST 6: OK: Expected signal at strlen.c:38 strlen: input string unallocated -TEST 7: OK: Expected signal at strlen.c:35 +TEST 7: OK: Expected signal at strlen.c:40 diff --git a/src/plugins/e-acsl/tests/builtin/strcat.c b/src/plugins/e-acsl/tests/builtin/strcat.c index d8bd751af84661e01e3ff675eddba729d9fa622a..ae47c89f2928c950ef25095e7f4bc2dd8fc3710b 100644 --- a/src/plugins/e-acsl/tests/builtin/strcat.c +++ b/src/plugins/e-acsl/tests/builtin/strcat.c @@ -1,7 +1,12 @@ /* run.config COMMENT: Test `strcat` and `strncat` E-ACSL built-ins - DEPS: @PTESTS_DEPS@ utils/signalled.h + DEPS: @PTEST_DEPS@ utils/signalled.h STDOPT: +"-eva-precision=1" + COMMENT: This part is blank on purpose (test stability + Dune) + + + + */ #include "utils/signalled.h" diff --git a/src/plugins/e-acsl/tests/builtin/strcmp.c b/src/plugins/e-acsl/tests/builtin/strcmp.c index e90d1b7f2ea4613ea6d98a8654bf78d02f1ff586..10c86c02e0aa57f3d845574008a91f39bb4eec26 100644 --- a/src/plugins/e-acsl/tests/builtin/strcmp.c +++ b/src/plugins/e-acsl/tests/builtin/strcmp.c @@ -1,7 +1,12 @@ /* run.config COMMENT: Test `strcmp` and `strncmp` E-ACSL built-ins - DEPS: @PTESTS_DEPS@ utils/signalled.h + DEPS: @PTEST_DEPS@ utils/signalled.h STDOPT: + COMMENT: This part is blank on purpose (test stability + Dune) + + + + */ #include "utils/signalled.h" diff --git a/src/plugins/e-acsl/tests/builtin/strcpy.c b/src/plugins/e-acsl/tests/builtin/strcpy.c index 44e8b5f81106f3025f08100ba72c70c8987ed65e..51987a4299dbfbe0d75279a0e566dea7ec4274d5 100644 --- a/src/plugins/e-acsl/tests/builtin/strcpy.c +++ b/src/plugins/e-acsl/tests/builtin/strcpy.c @@ -1,7 +1,12 @@ /* run.config COMMENT: Test `strcpy` and `strncpy` E-ACSL built-ins - DEPS: @PTESTS_DEPS@ utils/signalled.h + DEPS: @PTEST_DEPS@ utils/signalled.h STDOPT: + COMMENT: This part is blank on purpose (test stability + Dune) + + + + */ #include "utils/signalled.h" diff --git a/src/plugins/e-acsl/tests/builtin/strlen.c b/src/plugins/e-acsl/tests/builtin/strlen.c index 556734a33c04696ac9b9262f3ae248a1c64df366..b570dfe679ef08540fc73c48292d915df29d460a 100644 --- a/src/plugins/e-acsl/tests/builtin/strlen.c +++ b/src/plugins/e-acsl/tests/builtin/strlen.c @@ -1,7 +1,12 @@ /* run.config COMMENT: Test `strlen` E-ACSL built-ins - DEPS: @PTESTS_DEPS@ utils/signalled.h + DEPS: @PTEST_DEPS@ utils/signalled.h STDOPT: + COMMENT: This part is blank on purpose (test stability + Dune) + + + + */ #include "utils/signalled.h" diff --git a/src/plugins/e-acsl/tests/concurrency/oracle/gen_parallel_threads.c b/src/plugins/e-acsl/tests/concurrency/oracle/gen_parallel_threads.c index ee89abb7fcb4c4457d8d139441afbf78d105cc07..40f13a6bb2b9b8efb37e49b2c6b0a42f3f1fcb91 100644 --- a/src/plugins/e-acsl/tests/concurrency/oracle/gen_parallel_threads.c +++ b/src/plugins/e-acsl/tests/concurrency/oracle/gen_parallel_threads.c @@ -750,7 +750,7 @@ int __gen_e_acsl_usleep(useconds_t usec) __gen_e_acsl_assert_data.pred_txt = "\\result == 0 || \\result == -1"; __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h"; __gen_e_acsl_assert_data.fct = "usleep"; - __gen_e_acsl_assert_data.line = 1133; + __gen_e_acsl_assert_data.line = 1145; __gen_e_acsl_assert_data.name = "result_ok_or_error"; __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data); __e_acsl_assert_clean(& __gen_e_acsl_assert_data); diff --git a/src/plugins/e-acsl/tests/concurrency/oracle/gen_threads_debug.c b/src/plugins/e-acsl/tests/concurrency/oracle/gen_threads_debug.c index 015865844d25becb116a1fef1bd8cfbc986dabe0..4f732c743cec300b6b732d4bc173a952ba3ed750 100644 --- a/src/plugins/e-acsl/tests/concurrency/oracle/gen_threads_debug.c +++ b/src/plugins/e-acsl/tests/concurrency/oracle/gen_threads_debug.c @@ -432,7 +432,7 @@ int __gen_e_acsl_usleep(useconds_t usec) __gen_e_acsl_assert_data.pred_txt = "\\result == 0 || \\result == -1"; __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h"; __gen_e_acsl_assert_data.fct = "usleep"; - __gen_e_acsl_assert_data.line = 1133; + __gen_e_acsl_assert_data.line = 1145; __gen_e_acsl_assert_data.name = "result_ok_or_error"; __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data); __e_acsl_assert_clean(& __gen_e_acsl_assert_data); diff --git a/src/plugins/e-acsl/tests/concurrency/oracle/parallel_threads.res.oracle b/src/plugins/e-acsl/tests/concurrency/oracle/parallel_threads.res.oracle index e2c36e496bfdfe3bfea42a54de5cd5d7e96cc934..7ea32d04a840db852dfa49087dfe4c53929d64ae 100644 --- a/src/plugins/e-acsl/tests/concurrency/oracle/parallel_threads.res.oracle +++ b/src/plugins/e-acsl/tests/concurrency/oracle/parallel_threads.res.oracle @@ -35,7 +35,7 @@ [e-acsl] Warning: annotating undefined function `usleep': the generated program may miss memory instrumentation if there are memory-related annotations. -[e-acsl] FRAMAC_SHARE/libc/unistd.h:1130: Warning: +[e-acsl] FRAMAC_SHARE/libc/unistd.h:1142: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:505: Warning: @@ -166,6 +166,6 @@ [eva:alarm] FRAMAC_SHARE/libc/pthread.h:316: Warning: function __e_acsl_assert_register_int: precondition data->values == \null || \valid(data->values) got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/unistd.h:1133: Warning: +[eva:alarm] FRAMAC_SHARE/libc/unistd.h:1145: Warning: function __e_acsl_assert_register_int: precondition data->values == \null || \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/concurrency/oracle/threads_debug.res.oracle b/src/plugins/e-acsl/tests/concurrency/oracle/threads_debug.res.oracle index e2c36e496bfdfe3bfea42a54de5cd5d7e96cc934..7ea32d04a840db852dfa49087dfe4c53929d64ae 100644 --- a/src/plugins/e-acsl/tests/concurrency/oracle/threads_debug.res.oracle +++ b/src/plugins/e-acsl/tests/concurrency/oracle/threads_debug.res.oracle @@ -35,7 +35,7 @@ [e-acsl] Warning: annotating undefined function `usleep': the generated program may miss memory instrumentation if there are memory-related annotations. -[e-acsl] FRAMAC_SHARE/libc/unistd.h:1130: Warning: +[e-acsl] FRAMAC_SHARE/libc/unistd.h:1142: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:505: Warning: @@ -166,6 +166,6 @@ [eva:alarm] FRAMAC_SHARE/libc/pthread.h:316: Warning: function __e_acsl_assert_register_int: precondition data->values == \null || \valid(data->values) got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/unistd.h:1133: Warning: +[eva:alarm] FRAMAC_SHARE/libc/unistd.h:1145: Warning: function __e_acsl_assert_register_int: precondition data->values == \null || \valid(data->values) got status unknown. diff --git a/src/plugins/e-acsl/tests/format/fprintf.c b/src/plugins/e-acsl/tests/format/fprintf.c index 0ad4326e664141bc2d524b21c0550f16b16ef10c..d882296dc46353433056f0b1c97a646606364f58 100644 --- a/src/plugins/e-acsl/tests/format/fprintf.c +++ b/src/plugins/e-acsl/tests/format/fprintf.c @@ -1,6 +1,12 @@ /* run.config COMMENT: Check behaviours of format functions + DEPS: @PTEST_DEPS@ utils/signalled.h STDOPT: +"-eva-precision=1" + COMMENT: This part is blank on purpose (test stability + Dune) + + + + */ #include "utils/signalled.h" diff --git a/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle b/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle index 8871dc016e5381cca2b6ce61a0ac82cef7435061..658935448b79860faf628778090446a16a2f2b6e 100644 --- a/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle @@ -48,5 +48,5 @@ [eva:alarm] FRAMAC_SHARE/libc/unistd.h:847: Warning: function __e_acsl_assert_register_int: precondition data->values == \null || \valid(data->values) got status unknown. -[kernel:annot:missing-spec] fprintf.c:16: Warning: +[kernel:annot:missing-spec] fprintf.c:22: Warning: Neither code nor specification for function __e_acsl_builtin_fprintf, generating default assigns from the prototype diff --git a/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c b/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c index 14d271ade3d3f4e24b9af3902c96cf8a9e6bd8dc..05b5a31863fe96479a2678e995c6a2ac2a1a0fef 100644 --- a/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c +++ b/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c @@ -354,94 +354,94 @@ void __e_acsl_globals_init(void) static char __e_acsl_already_run = 0; if (! __e_acsl_already_run) { __e_acsl_already_run = 1; - __gen_e_acsl_literal_string_31 = "fprintf.c:48"; + __gen_e_acsl_literal_string_31 = "fprintf.c:54"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_31, - sizeof("fprintf.c:48")); + sizeof("fprintf.c:54")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_31); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_31); - __gen_e_acsl_literal_string_30 = "fprintf.c:46"; + __gen_e_acsl_literal_string_30 = "fprintf.c:52"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_30, - sizeof("fprintf.c:46")); + sizeof("fprintf.c:52")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_30); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_30); - __gen_e_acsl_literal_string_29 = "fprintf.c:45"; + __gen_e_acsl_literal_string_29 = "fprintf.c:51"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_29, - sizeof("fprintf.c:45")); + sizeof("fprintf.c:51")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_29); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_29); - __gen_e_acsl_literal_string_28 = "fprintf.c:44"; + __gen_e_acsl_literal_string_28 = "fprintf.c:50"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_28, - sizeof("fprintf.c:44")); + sizeof("fprintf.c:50")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_28); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_28); - __gen_e_acsl_literal_string_27 = "fprintf.c:43"; + __gen_e_acsl_literal_string_27 = "fprintf.c:49"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_27, - sizeof("fprintf.c:43")); + sizeof("fprintf.c:49")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_27); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_27); - __gen_e_acsl_literal_string_26 = "fprintf.c:42"; + __gen_e_acsl_literal_string_26 = "fprintf.c:48"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_26, - sizeof("fprintf.c:42")); + sizeof("fprintf.c:48")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_26); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_26); - __gen_e_acsl_literal_string_25 = "fprintf.c:39"; + __gen_e_acsl_literal_string_25 = "fprintf.c:45"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_25, - sizeof("fprintf.c:39")); + sizeof("fprintf.c:45")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_25); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_25); - __gen_e_acsl_literal_string_24 = "fprintf.c:38"; + __gen_e_acsl_literal_string_24 = "fprintf.c:44"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_24, - sizeof("fprintf.c:38")); + sizeof("fprintf.c:44")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_24); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_24); - __gen_e_acsl_literal_string_23 = "fprintf.c:37"; + __gen_e_acsl_literal_string_23 = "fprintf.c:43"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23, - sizeof("fprintf.c:37")); + sizeof("fprintf.c:43")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23); - __gen_e_acsl_literal_string_21 = "fprintf.c:36"; + __gen_e_acsl_literal_string_21 = "fprintf.c:42"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21, - sizeof("fprintf.c:36")); + sizeof("fprintf.c:42")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21); - __gen_e_acsl_literal_string_19 = "fprintf.c:35"; + __gen_e_acsl_literal_string_19 = "fprintf.c:41"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19, - sizeof("fprintf.c:35")); + sizeof("fprintf.c:41")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19); - __gen_e_acsl_literal_string_16 = "fprintf.c:29"; + __gen_e_acsl_literal_string_16 = "fprintf.c:35"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16, - sizeof("fprintf.c:29")); + sizeof("fprintf.c:35")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16); - __gen_e_acsl_literal_string_15 = "fprintf.c:28"; + __gen_e_acsl_literal_string_15 = "fprintf.c:34"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_15, - sizeof("fprintf.c:28")); + sizeof("fprintf.c:34")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_15); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_15); - __gen_e_acsl_literal_string_14 = "fprintf.c:23"; + __gen_e_acsl_literal_string_14 = "fprintf.c:29"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14, - sizeof("fprintf.c:23")); + sizeof("fprintf.c:29")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14); - __gen_e_acsl_literal_string_13 = "fprintf.c:22"; + __gen_e_acsl_literal_string_13 = "fprintf.c:28"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_13, - sizeof("fprintf.c:22")); + sizeof("fprintf.c:28")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_13); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_13); - __gen_e_acsl_literal_string_12 = "fprintf.c:20"; + __gen_e_acsl_literal_string_12 = "fprintf.c:26"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12, - sizeof("fprintf.c:20")); + sizeof("fprintf.c:26")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12); - __gen_e_acsl_literal_string_9 = "fprintf.c:17"; + __gen_e_acsl_literal_string_9 = "fprintf.c:23"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_9, - sizeof("fprintf.c:17")); + sizeof("fprintf.c:23")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_9); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_9); - __gen_e_acsl_literal_string_8 = "fprintf.c:16"; + __gen_e_acsl_literal_string_8 = "fprintf.c:22"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_8, - sizeof("fprintf.c:16")); + sizeof("fprintf.c:22")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_8); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_8); __gen_e_acsl_literal_string_11 = "foobar %s\n"; diff --git a/src/plugins/e-acsl/tests/format/oracle/gen_printf.c b/src/plugins/e-acsl/tests/format/oracle/gen_printf.c index 5cc47f47128dfed9ed20d3092b3792a31ec2d031..31fd82319a2aae9f6f60e19041ecdf5c3fe783a0 100644 --- a/src/plugins/e-acsl/tests/format/oracle/gen_printf.c +++ b/src/plugins/e-acsl/tests/format/oracle/gen_printf.c @@ -643,7 +643,7 @@ void test_specifier_application(char const *allowed, char const *fmt, __gen_e_acsl_assert_data.pred_txt = "0 < sizeof(char) * (int)(len + 1) <= 18446744073709551615"; __gen_e_acsl_assert_data.file = "printf.c"; __gen_e_acsl_assert_data.fct = "test_specifier_application"; - __gen_e_acsl_assert_data.line = 55; + __gen_e_acsl_assert_data.line = 61; __gen_e_acsl_assert_data.name = "alloca_bounds"; __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data); __e_acsl_assert_clean(& __gen_e_acsl_assert_data); @@ -1202,1374 +1202,1374 @@ void __e_acsl_globals_init(void) sizeof("uoxX")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_7); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_7); - __gen_e_acsl_literal_string_455 = "printf.c:602"; + __gen_e_acsl_literal_string_455 = "printf.c:608"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_455, - sizeof("printf.c:602")); + sizeof("printf.c:608")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_455); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_455); - __gen_e_acsl_literal_string_453 = "printf.c:599"; + __gen_e_acsl_literal_string_453 = "printf.c:605"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_453, - sizeof("printf.c:599")); + sizeof("printf.c:605")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_453); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_453); - __gen_e_acsl_literal_string_451 = "printf.c:598"; + __gen_e_acsl_literal_string_451 = "printf.c:604"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_451, - sizeof("printf.c:598")); + sizeof("printf.c:604")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_451); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_451); - __gen_e_acsl_literal_string_450 = "printf.c:597"; + __gen_e_acsl_literal_string_450 = "printf.c:603"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_450, - sizeof("printf.c:597")); + sizeof("printf.c:603")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_450); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_450); - __gen_e_acsl_literal_string_448 = "printf.c:596"; + __gen_e_acsl_literal_string_448 = "printf.c:602"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_448, - sizeof("printf.c:596")); + sizeof("printf.c:602")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_448); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_448); - __gen_e_acsl_literal_string_446 = "printf.c:595"; + __gen_e_acsl_literal_string_446 = "printf.c:601"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_446, - sizeof("printf.c:595")); + sizeof("printf.c:601")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_446); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_446); - __gen_e_acsl_literal_string_444 = "printf.c:594"; + __gen_e_acsl_literal_string_444 = "printf.c:600"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_444, - sizeof("printf.c:594")); + sizeof("printf.c:600")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_444); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_444); - __gen_e_acsl_literal_string_442 = "printf.c:593"; + __gen_e_acsl_literal_string_442 = "printf.c:599"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_442, - sizeof("printf.c:593")); + sizeof("printf.c:599")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_442); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_442); - __gen_e_acsl_literal_string_440 = "printf.c:592"; + __gen_e_acsl_literal_string_440 = "printf.c:598"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_440, - sizeof("printf.c:592")); + sizeof("printf.c:598")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_440); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_440); - __gen_e_acsl_literal_string_438 = "printf.c:591"; + __gen_e_acsl_literal_string_438 = "printf.c:597"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_438, - sizeof("printf.c:591")); + sizeof("printf.c:597")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_438); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_438); - __gen_e_acsl_literal_string_436 = "printf.c:590"; + __gen_e_acsl_literal_string_436 = "printf.c:596"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_436, - sizeof("printf.c:590")); + sizeof("printf.c:596")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_436); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_436); - __gen_e_acsl_literal_string_434 = "printf.c:587"; + __gen_e_acsl_literal_string_434 = "printf.c:593"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_434, - sizeof("printf.c:587")); + sizeof("printf.c:593")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_434); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_434); - __gen_e_acsl_literal_string_433 = "printf.c:586"; + __gen_e_acsl_literal_string_433 = "printf.c:592"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_433, - sizeof("printf.c:586")); + sizeof("printf.c:592")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_433); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_433); - __gen_e_acsl_literal_string_432 = "printf.c:585"; + __gen_e_acsl_literal_string_432 = "printf.c:591"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_432, - sizeof("printf.c:585")); + sizeof("printf.c:591")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_432); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_432); - __gen_e_acsl_literal_string_431 = "printf.c:584"; + __gen_e_acsl_literal_string_431 = "printf.c:590"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_431, - sizeof("printf.c:584")); + sizeof("printf.c:590")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_431); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_431); - __gen_e_acsl_literal_string_429 = "printf.c:581"; + __gen_e_acsl_literal_string_429 = "printf.c:587"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_429, - sizeof("printf.c:581")); + sizeof("printf.c:587")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_429); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_429); - __gen_e_acsl_literal_string_428 = "printf.c:580"; + __gen_e_acsl_literal_string_428 = "printf.c:586"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_428, - sizeof("printf.c:580")); + sizeof("printf.c:586")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_428); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_428); - __gen_e_acsl_literal_string_427 = "printf.c:579"; + __gen_e_acsl_literal_string_427 = "printf.c:585"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_427, - sizeof("printf.c:579")); + sizeof("printf.c:585")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_427); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_427); - __gen_e_acsl_literal_string_425 = "printf.c:554"; + __gen_e_acsl_literal_string_425 = "printf.c:560"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_425, - sizeof("printf.c:554")); + sizeof("printf.c:560")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_425); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_425); - __gen_e_acsl_literal_string_423 = "printf.c:553"; + __gen_e_acsl_literal_string_423 = "printf.c:559"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_423, - sizeof("printf.c:553")); + sizeof("printf.c:559")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_423); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_423); - __gen_e_acsl_literal_string_421 = "printf.c:552"; + __gen_e_acsl_literal_string_421 = "printf.c:558"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_421, - sizeof("printf.c:552")); + sizeof("printf.c:558")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_421); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_421); - __gen_e_acsl_literal_string_419 = "printf.c:551"; + __gen_e_acsl_literal_string_419 = "printf.c:557"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_419, - sizeof("printf.c:551")); + sizeof("printf.c:557")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_419); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_419); - __gen_e_acsl_literal_string_417 = "printf.c:550"; + __gen_e_acsl_literal_string_417 = "printf.c:556"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_417, - sizeof("printf.c:550")); + sizeof("printf.c:556")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_417); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_417); - __gen_e_acsl_literal_string_415 = "printf.c:547"; + __gen_e_acsl_literal_string_415 = "printf.c:553"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_415, - sizeof("printf.c:547")); + sizeof("printf.c:553")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_415); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_415); - __gen_e_acsl_literal_string_414 = "printf.c:545"; + __gen_e_acsl_literal_string_414 = "printf.c:551"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_414, - sizeof("printf.c:545")); + sizeof("printf.c:551")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_414); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_414); - __gen_e_acsl_literal_string_413 = "printf.c:542"; + __gen_e_acsl_literal_string_413 = "printf.c:548"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_413, - sizeof("printf.c:542")); + sizeof("printf.c:548")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_413); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_413); - __gen_e_acsl_literal_string_412 = "printf.c:541"; + __gen_e_acsl_literal_string_412 = "printf.c:547"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_412, - sizeof("printf.c:541")); + sizeof("printf.c:547")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_412); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_412); - __gen_e_acsl_literal_string_411 = "printf.c:536"; + __gen_e_acsl_literal_string_411 = "printf.c:542"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_411, - sizeof("printf.c:536")); + sizeof("printf.c:542")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_411); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_411); - __gen_e_acsl_literal_string_410 = "printf.c:535"; + __gen_e_acsl_literal_string_410 = "printf.c:541"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_410, - sizeof("printf.c:535")); + sizeof("printf.c:541")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_410); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_410); - __gen_e_acsl_literal_string_409 = "printf.c:534"; + __gen_e_acsl_literal_string_409 = "printf.c:540"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_409, - sizeof("printf.c:534")); + sizeof("printf.c:540")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_409); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_409); - __gen_e_acsl_literal_string_408 = "printf.c:533"; + __gen_e_acsl_literal_string_408 = "printf.c:539"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_408, - sizeof("printf.c:533")); + sizeof("printf.c:539")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_408); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_408); - __gen_e_acsl_literal_string_406 = "printf.c:526"; + __gen_e_acsl_literal_string_406 = "printf.c:532"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_406, - sizeof("printf.c:526")); + sizeof("printf.c:532")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_406); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_406); - __gen_e_acsl_literal_string_405 = "printf.c:525"; + __gen_e_acsl_literal_string_405 = "printf.c:531"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_405, - sizeof("printf.c:525")); + sizeof("printf.c:531")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_405); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_405); - __gen_e_acsl_literal_string_403 = "printf.c:522"; + __gen_e_acsl_literal_string_403 = "printf.c:528"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_403, - sizeof("printf.c:522")); + sizeof("printf.c:528")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_403); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_403); - __gen_e_acsl_literal_string_402 = "printf.c:521"; + __gen_e_acsl_literal_string_402 = "printf.c:527"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_402, - sizeof("printf.c:521")); + sizeof("printf.c:527")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_402); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_402); - __gen_e_acsl_literal_string_401 = "printf.c:520"; + __gen_e_acsl_literal_string_401 = "printf.c:526"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_401, - sizeof("printf.c:520")); + sizeof("printf.c:526")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_401); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_401); - __gen_e_acsl_literal_string_400 = "printf.c:519"; + __gen_e_acsl_literal_string_400 = "printf.c:525"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_400, - sizeof("printf.c:519")); + sizeof("printf.c:525")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_400); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_400); - __gen_e_acsl_literal_string_399 = "printf.c:518"; + __gen_e_acsl_literal_string_399 = "printf.c:524"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_399, - sizeof("printf.c:518")); + sizeof("printf.c:524")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_399); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_399); - __gen_e_acsl_literal_string_398 = "printf.c:517"; + __gen_e_acsl_literal_string_398 = "printf.c:523"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_398, - sizeof("printf.c:517")); + sizeof("printf.c:523")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_398); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_398); - __gen_e_acsl_literal_string_397 = "printf.c:516"; + __gen_e_acsl_literal_string_397 = "printf.c:522"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_397, - sizeof("printf.c:516")); + sizeof("printf.c:522")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_397); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_397); - __gen_e_acsl_literal_string_395 = "printf.c:513"; + __gen_e_acsl_literal_string_395 = "printf.c:519"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_395, - sizeof("printf.c:513")); + sizeof("printf.c:519")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_395); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_395); - __gen_e_acsl_literal_string_394 = "printf.c:512"; + __gen_e_acsl_literal_string_394 = "printf.c:518"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_394, - sizeof("printf.c:512")); + sizeof("printf.c:518")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_394); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_394); - __gen_e_acsl_literal_string_393 = "printf.c:511"; + __gen_e_acsl_literal_string_393 = "printf.c:517"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_393, - sizeof("printf.c:511")); + sizeof("printf.c:517")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_393); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_393); - __gen_e_acsl_literal_string_392 = "printf.c:510"; + __gen_e_acsl_literal_string_392 = "printf.c:516"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_392, - sizeof("printf.c:510")); + sizeof("printf.c:516")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_392); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_392); - __gen_e_acsl_literal_string_391 = "printf.c:509"; + __gen_e_acsl_literal_string_391 = "printf.c:515"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_391, - sizeof("printf.c:509")); + sizeof("printf.c:515")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_391); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_391); - __gen_e_acsl_literal_string_390 = "printf.c:508"; + __gen_e_acsl_literal_string_390 = "printf.c:514"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_390, - sizeof("printf.c:508")); + sizeof("printf.c:514")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_390); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_390); - __gen_e_acsl_literal_string_389 = "printf.c:507"; + __gen_e_acsl_literal_string_389 = "printf.c:513"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_389, - sizeof("printf.c:507")); + sizeof("printf.c:513")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_389); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_389); - __gen_e_acsl_literal_string_387 = "printf.c:506"; + __gen_e_acsl_literal_string_387 = "printf.c:512"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_387, - sizeof("printf.c:506")); + sizeof("printf.c:512")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_387); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_387); - __gen_e_acsl_literal_string_385 = "printf.c:505"; + __gen_e_acsl_literal_string_385 = "printf.c:511"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_385, - sizeof("printf.c:505")); + sizeof("printf.c:511")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_385); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_385); - __gen_e_acsl_literal_string_384 = "printf.c:504"; + __gen_e_acsl_literal_string_384 = "printf.c:510"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_384, - sizeof("printf.c:504")); + sizeof("printf.c:510")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_384); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_384); - __gen_e_acsl_literal_string_383 = "printf.c:503"; + __gen_e_acsl_literal_string_383 = "printf.c:509"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_383, - sizeof("printf.c:503")); + sizeof("printf.c:509")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_383); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_383); - __gen_e_acsl_literal_string_382 = "printf.c:502"; + __gen_e_acsl_literal_string_382 = "printf.c:508"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_382, - sizeof("printf.c:502")); + sizeof("printf.c:508")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_382); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_382); - __gen_e_acsl_literal_string_381 = "printf.c:501"; + __gen_e_acsl_literal_string_381 = "printf.c:507"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_381, - sizeof("printf.c:501")); + sizeof("printf.c:507")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_381); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_381); - __gen_e_acsl_literal_string_380 = "printf.c:500"; + __gen_e_acsl_literal_string_380 = "printf.c:506"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_380, - sizeof("printf.c:500")); + sizeof("printf.c:506")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_380); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_380); - __gen_e_acsl_literal_string_379 = "printf.c:499"; + __gen_e_acsl_literal_string_379 = "printf.c:505"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_379, - sizeof("printf.c:499")); + sizeof("printf.c:505")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_379); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_379); - __gen_e_acsl_literal_string_377 = "printf.c:498"; + __gen_e_acsl_literal_string_377 = "printf.c:504"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_377, - sizeof("printf.c:498")); + sizeof("printf.c:504")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_377); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_377); - __gen_e_acsl_literal_string_375 = "printf.c:497"; + __gen_e_acsl_literal_string_375 = "printf.c:503"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_375, - sizeof("printf.c:497")); + sizeof("printf.c:503")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_375); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_375); - __gen_e_acsl_literal_string_374 = "printf.c:496"; + __gen_e_acsl_literal_string_374 = "printf.c:502"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_374, - sizeof("printf.c:496")); + sizeof("printf.c:502")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_374); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_374); - __gen_e_acsl_literal_string_373 = "printf.c:495"; + __gen_e_acsl_literal_string_373 = "printf.c:501"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_373, - sizeof("printf.c:495")); + sizeof("printf.c:501")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_373); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_373); - __gen_e_acsl_literal_string_372 = "printf.c:494"; + __gen_e_acsl_literal_string_372 = "printf.c:500"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_372, - sizeof("printf.c:494")); + sizeof("printf.c:500")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_372); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_372); - __gen_e_acsl_literal_string_371 = "printf.c:493"; + __gen_e_acsl_literal_string_371 = "printf.c:499"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_371, - sizeof("printf.c:493")); + sizeof("printf.c:499")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_371); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_371); - __gen_e_acsl_literal_string_370 = "printf.c:492"; + __gen_e_acsl_literal_string_370 = "printf.c:498"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_370, - sizeof("printf.c:492")); + sizeof("printf.c:498")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_370); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_370); - __gen_e_acsl_literal_string_369 = "printf.c:491"; + __gen_e_acsl_literal_string_369 = "printf.c:497"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_369, - sizeof("printf.c:491")); + sizeof("printf.c:497")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_369); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_369); - __gen_e_acsl_literal_string_367 = "printf.c:490"; + __gen_e_acsl_literal_string_367 = "printf.c:496"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_367, - sizeof("printf.c:490")); + sizeof("printf.c:496")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_367); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_367); - __gen_e_acsl_literal_string_365 = "printf.c:489"; + __gen_e_acsl_literal_string_365 = "printf.c:495"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_365, - sizeof("printf.c:489")); + sizeof("printf.c:495")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_365); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_365); - __gen_e_acsl_literal_string_364 = "printf.c:488"; + __gen_e_acsl_literal_string_364 = "printf.c:494"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_364, - sizeof("printf.c:488")); + sizeof("printf.c:494")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_364); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_364); - __gen_e_acsl_literal_string_363 = "printf.c:487"; + __gen_e_acsl_literal_string_363 = "printf.c:493"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_363, - sizeof("printf.c:487")); + sizeof("printf.c:493")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_363); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_363); - __gen_e_acsl_literal_string_362 = "printf.c:486"; + __gen_e_acsl_literal_string_362 = "printf.c:492"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_362, - sizeof("printf.c:486")); + sizeof("printf.c:492")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_362); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_362); - __gen_e_acsl_literal_string_361 = "printf.c:485"; + __gen_e_acsl_literal_string_361 = "printf.c:491"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_361, - sizeof("printf.c:485")); + sizeof("printf.c:491")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_361); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_361); - __gen_e_acsl_literal_string_360 = "printf.c:484"; + __gen_e_acsl_literal_string_360 = "printf.c:490"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_360, - sizeof("printf.c:484")); + sizeof("printf.c:490")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_360); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_360); - __gen_e_acsl_literal_string_359 = "printf.c:483"; + __gen_e_acsl_literal_string_359 = "printf.c:489"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_359, - sizeof("printf.c:483")); + sizeof("printf.c:489")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_359); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_359); - __gen_e_acsl_literal_string_357 = "printf.c:482"; + __gen_e_acsl_literal_string_357 = "printf.c:488"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_357, - sizeof("printf.c:482")); + sizeof("printf.c:488")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_357); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_357); - __gen_e_acsl_literal_string_355 = "printf.c:479"; + __gen_e_acsl_literal_string_355 = "printf.c:485"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_355, - sizeof("printf.c:479")); + sizeof("printf.c:485")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_355); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_355); - __gen_e_acsl_literal_string_354 = "printf.c:478"; + __gen_e_acsl_literal_string_354 = "printf.c:484"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_354, - sizeof("printf.c:478")); + sizeof("printf.c:484")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_354); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_354); - __gen_e_acsl_literal_string_353 = "printf.c:477"; + __gen_e_acsl_literal_string_353 = "printf.c:483"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_353, - sizeof("printf.c:477")); + sizeof("printf.c:483")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_353); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_353); - __gen_e_acsl_literal_string_352 = "printf.c:476"; + __gen_e_acsl_literal_string_352 = "printf.c:482"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_352, - sizeof("printf.c:476")); + sizeof("printf.c:482")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_352); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_352); - __gen_e_acsl_literal_string_351 = "printf.c:475"; + __gen_e_acsl_literal_string_351 = "printf.c:481"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_351, - sizeof("printf.c:475")); + sizeof("printf.c:481")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_351); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_351); - __gen_e_acsl_literal_string_350 = "printf.c:474"; + __gen_e_acsl_literal_string_350 = "printf.c:480"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_350, - sizeof("printf.c:474")); + sizeof("printf.c:480")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_350); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_350); - __gen_e_acsl_literal_string_349 = "printf.c:473"; + __gen_e_acsl_literal_string_349 = "printf.c:479"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_349, - sizeof("printf.c:473")); + sizeof("printf.c:479")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_349); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_349); - __gen_e_acsl_literal_string_347 = "printf.c:472"; + __gen_e_acsl_literal_string_347 = "printf.c:478"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_347, - sizeof("printf.c:472")); + sizeof("printf.c:478")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_347); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_347); - __gen_e_acsl_literal_string_345 = "printf.c:471"; + __gen_e_acsl_literal_string_345 = "printf.c:477"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_345, - sizeof("printf.c:471")); + sizeof("printf.c:477")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_345); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_345); - __gen_e_acsl_literal_string_344 = "printf.c:470"; + __gen_e_acsl_literal_string_344 = "printf.c:476"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_344, - sizeof("printf.c:470")); + sizeof("printf.c:476")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_344); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_344); - __gen_e_acsl_literal_string_343 = "printf.c:469"; + __gen_e_acsl_literal_string_343 = "printf.c:475"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_343, - sizeof("printf.c:469")); + sizeof("printf.c:475")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_343); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_343); - __gen_e_acsl_literal_string_342 = "printf.c:468"; + __gen_e_acsl_literal_string_342 = "printf.c:474"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_342, - sizeof("printf.c:468")); + sizeof("printf.c:474")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_342); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_342); - __gen_e_acsl_literal_string_341 = "printf.c:467"; + __gen_e_acsl_literal_string_341 = "printf.c:473"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_341, - sizeof("printf.c:467")); + sizeof("printf.c:473")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_341); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_341); - __gen_e_acsl_literal_string_340 = "printf.c:466"; + __gen_e_acsl_literal_string_340 = "printf.c:472"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_340, - sizeof("printf.c:466")); + sizeof("printf.c:472")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_340); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_340); - __gen_e_acsl_literal_string_339 = "printf.c:465"; + __gen_e_acsl_literal_string_339 = "printf.c:471"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_339, - sizeof("printf.c:465")); + sizeof("printf.c:471")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_339); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_339); - __gen_e_acsl_literal_string_337 = "printf.c:464"; + __gen_e_acsl_literal_string_337 = "printf.c:470"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_337, - sizeof("printf.c:464")); + sizeof("printf.c:470")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_337); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_337); - __gen_e_acsl_literal_string_335 = "printf.c:463"; + __gen_e_acsl_literal_string_335 = "printf.c:469"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_335, - sizeof("printf.c:463")); + sizeof("printf.c:469")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_335); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_335); - __gen_e_acsl_literal_string_334 = "printf.c:462"; + __gen_e_acsl_literal_string_334 = "printf.c:468"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_334, - sizeof("printf.c:462")); + sizeof("printf.c:468")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_334); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_334); - __gen_e_acsl_literal_string_333 = "printf.c:461"; + __gen_e_acsl_literal_string_333 = "printf.c:467"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_333, - sizeof("printf.c:461")); + sizeof("printf.c:467")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_333); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_333); - __gen_e_acsl_literal_string_332 = "printf.c:460"; + __gen_e_acsl_literal_string_332 = "printf.c:466"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_332, - sizeof("printf.c:460")); + sizeof("printf.c:466")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_332); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_332); - __gen_e_acsl_literal_string_331 = "printf.c:459"; + __gen_e_acsl_literal_string_331 = "printf.c:465"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_331, - sizeof("printf.c:459")); + sizeof("printf.c:465")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_331); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_331); - __gen_e_acsl_literal_string_330 = "printf.c:458"; + __gen_e_acsl_literal_string_330 = "printf.c:464"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_330, - sizeof("printf.c:458")); + sizeof("printf.c:464")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_330); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_330); - __gen_e_acsl_literal_string_329 = "printf.c:457"; + __gen_e_acsl_literal_string_329 = "printf.c:463"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_329, - sizeof("printf.c:457")); + sizeof("printf.c:463")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_329); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_329); - __gen_e_acsl_literal_string_327 = "printf.c:456"; + __gen_e_acsl_literal_string_327 = "printf.c:462"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_327, - sizeof("printf.c:456")); + sizeof("printf.c:462")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_327); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_327); - __gen_e_acsl_literal_string_325 = "printf.c:455"; + __gen_e_acsl_literal_string_325 = "printf.c:461"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_325, - sizeof("printf.c:455")); + sizeof("printf.c:461")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_325); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_325); - __gen_e_acsl_literal_string_324 = "printf.c:454"; + __gen_e_acsl_literal_string_324 = "printf.c:460"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_324, - sizeof("printf.c:454")); + sizeof("printf.c:460")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_324); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_324); - __gen_e_acsl_literal_string_323 = "printf.c:453"; + __gen_e_acsl_literal_string_323 = "printf.c:459"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_323, - sizeof("printf.c:453")); + sizeof("printf.c:459")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_323); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_323); - __gen_e_acsl_literal_string_322 = "printf.c:452"; + __gen_e_acsl_literal_string_322 = "printf.c:458"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_322, - sizeof("printf.c:452")); + sizeof("printf.c:458")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_322); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_322); - __gen_e_acsl_literal_string_321 = "printf.c:451"; + __gen_e_acsl_literal_string_321 = "printf.c:457"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_321, - sizeof("printf.c:451")); + sizeof("printf.c:457")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_321); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_321); - __gen_e_acsl_literal_string_320 = "printf.c:450"; + __gen_e_acsl_literal_string_320 = "printf.c:456"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_320, - sizeof("printf.c:450")); + sizeof("printf.c:456")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_320); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_320); - __gen_e_acsl_literal_string_319 = "printf.c:449"; + __gen_e_acsl_literal_string_319 = "printf.c:455"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_319, - sizeof("printf.c:449")); + sizeof("printf.c:455")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_319); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_319); - __gen_e_acsl_literal_string_317 = "printf.c:448"; + __gen_e_acsl_literal_string_317 = "printf.c:454"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_317, - sizeof("printf.c:448")); + sizeof("printf.c:454")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_317); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_317); - __gen_e_acsl_literal_string_315 = "printf.c:444"; + __gen_e_acsl_literal_string_315 = "printf.c:450"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_315, - sizeof("printf.c:444")); + sizeof("printf.c:450")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_315); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_315); - __gen_e_acsl_literal_string_313 = "printf.c:443"; + __gen_e_acsl_literal_string_313 = "printf.c:449"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_313, - sizeof("printf.c:443")); + sizeof("printf.c:449")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_313); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_313); - __gen_e_acsl_literal_string_311 = "printf.c:442"; + __gen_e_acsl_literal_string_311 = "printf.c:448"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_311, - sizeof("printf.c:442")); + sizeof("printf.c:448")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_311); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_311); - __gen_e_acsl_literal_string_309 = "printf.c:441"; + __gen_e_acsl_literal_string_309 = "printf.c:447"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_309, - sizeof("printf.c:441")); + sizeof("printf.c:447")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_309); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_309); - __gen_e_acsl_literal_string_307 = "printf.c:439"; + __gen_e_acsl_literal_string_307 = "printf.c:445"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_307, - sizeof("printf.c:439")); + sizeof("printf.c:445")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_307); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_307); - __gen_e_acsl_literal_string_305 = "printf.c:438"; + __gen_e_acsl_literal_string_305 = "printf.c:444"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_305, - sizeof("printf.c:438")); + sizeof("printf.c:444")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_305); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_305); - __gen_e_acsl_literal_string_303 = "printf.c:437"; + __gen_e_acsl_literal_string_303 = "printf.c:443"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_303, - sizeof("printf.c:437")); + sizeof("printf.c:443")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_303); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_303); - __gen_e_acsl_literal_string_301 = "printf.c:436"; + __gen_e_acsl_literal_string_301 = "printf.c:442"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_301, - sizeof("printf.c:436")); + sizeof("printf.c:442")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_301); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_301); - __gen_e_acsl_literal_string_299 = "printf.c:435"; + __gen_e_acsl_literal_string_299 = "printf.c:441"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_299, - sizeof("printf.c:435")); + sizeof("printf.c:441")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_299); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_299); - __gen_e_acsl_literal_string_297 = "printf.c:434"; + __gen_e_acsl_literal_string_297 = "printf.c:440"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_297, - sizeof("printf.c:434")); + sizeof("printf.c:440")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_297); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_297); - __gen_e_acsl_literal_string_295 = "printf.c:433"; + __gen_e_acsl_literal_string_295 = "printf.c:439"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_295, - sizeof("printf.c:433")); + sizeof("printf.c:439")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_295); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_295); - __gen_e_acsl_literal_string_293 = "printf.c:432"; + __gen_e_acsl_literal_string_293 = "printf.c:438"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_293, - sizeof("printf.c:432")); + sizeof("printf.c:438")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_293); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_293); - __gen_e_acsl_literal_string_291 = "printf.c:431"; + __gen_e_acsl_literal_string_291 = "printf.c:437"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_291, - sizeof("printf.c:431")); + sizeof("printf.c:437")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_291); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_291); - __gen_e_acsl_literal_string_289 = "printf.c:430"; + __gen_e_acsl_literal_string_289 = "printf.c:436"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_289, - sizeof("printf.c:430")); + sizeof("printf.c:436")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_289); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_289); - __gen_e_acsl_literal_string_287 = "printf.c:429"; + __gen_e_acsl_literal_string_287 = "printf.c:435"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_287, - sizeof("printf.c:429")); + sizeof("printf.c:435")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_287); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_287); - __gen_e_acsl_literal_string_285 = "printf.c:428"; + __gen_e_acsl_literal_string_285 = "printf.c:434"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_285, - sizeof("printf.c:428")); + sizeof("printf.c:434")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_285); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_285); - __gen_e_acsl_literal_string_283 = "printf.c:426"; + __gen_e_acsl_literal_string_283 = "printf.c:432"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_283, - sizeof("printf.c:426")); + sizeof("printf.c:432")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_283); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_283); - __gen_e_acsl_literal_string_281 = "printf.c:425"; + __gen_e_acsl_literal_string_281 = "printf.c:431"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_281, - sizeof("printf.c:425")); + sizeof("printf.c:431")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_281); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_281); - __gen_e_acsl_literal_string_279 = "printf.c:424"; + __gen_e_acsl_literal_string_279 = "printf.c:430"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_279, - sizeof("printf.c:424")); + sizeof("printf.c:430")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_279); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_279); - __gen_e_acsl_literal_string_277 = "printf.c:423"; + __gen_e_acsl_literal_string_277 = "printf.c:429"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_277, - sizeof("printf.c:423")); + sizeof("printf.c:429")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_277); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_277); - __gen_e_acsl_literal_string_275 = "printf.c:421"; + __gen_e_acsl_literal_string_275 = "printf.c:427"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_275, - sizeof("printf.c:421")); + sizeof("printf.c:427")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_275); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_275); - __gen_e_acsl_literal_string_273 = "printf.c:420"; + __gen_e_acsl_literal_string_273 = "printf.c:426"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_273, - sizeof("printf.c:420")); + sizeof("printf.c:426")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_273); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_273); - __gen_e_acsl_literal_string_271 = "printf.c:419"; + __gen_e_acsl_literal_string_271 = "printf.c:425"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_271, - sizeof("printf.c:419")); + sizeof("printf.c:425")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_271); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_271); - __gen_e_acsl_literal_string_269 = "printf.c:418"; + __gen_e_acsl_literal_string_269 = "printf.c:424"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_269, - sizeof("printf.c:418")); + sizeof("printf.c:424")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_269); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_269); - __gen_e_acsl_literal_string_267 = "printf.c:417"; + __gen_e_acsl_literal_string_267 = "printf.c:423"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_267, - sizeof("printf.c:417")); + sizeof("printf.c:423")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_267); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_267); - __gen_e_acsl_literal_string_265 = "printf.c:416"; + __gen_e_acsl_literal_string_265 = "printf.c:422"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_265, - sizeof("printf.c:416")); + sizeof("printf.c:422")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_265); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_265); - __gen_e_acsl_literal_string_263 = "printf.c:415"; + __gen_e_acsl_literal_string_263 = "printf.c:421"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_263, - sizeof("printf.c:415")); + sizeof("printf.c:421")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_263); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_263); - __gen_e_acsl_literal_string_261 = "printf.c:414"; + __gen_e_acsl_literal_string_261 = "printf.c:420"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_261, - sizeof("printf.c:414")); + sizeof("printf.c:420")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_261); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_261); - __gen_e_acsl_literal_string_259 = "printf.c:411"; + __gen_e_acsl_literal_string_259 = "printf.c:417"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_259, - sizeof("printf.c:411")); + sizeof("printf.c:417")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_259); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_259); - __gen_e_acsl_literal_string_258 = "printf.c:410"; + __gen_e_acsl_literal_string_258 = "printf.c:416"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_258, - sizeof("printf.c:410")); + sizeof("printf.c:416")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_258); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_258); - __gen_e_acsl_literal_string_257 = "printf.c:409"; + __gen_e_acsl_literal_string_257 = "printf.c:415"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_257, - sizeof("printf.c:409")); + sizeof("printf.c:415")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_257); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_257); - __gen_e_acsl_literal_string_256 = "printf.c:408"; + __gen_e_acsl_literal_string_256 = "printf.c:414"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_256, - sizeof("printf.c:408")); + sizeof("printf.c:414")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_256); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_256); - __gen_e_acsl_literal_string_255 = "printf.c:407"; + __gen_e_acsl_literal_string_255 = "printf.c:413"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_255, - sizeof("printf.c:407")); + sizeof("printf.c:413")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_255); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_255); - __gen_e_acsl_literal_string_254 = "printf.c:406"; + __gen_e_acsl_literal_string_254 = "printf.c:412"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_254, - sizeof("printf.c:406")); + sizeof("printf.c:412")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_254); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_254); - __gen_e_acsl_literal_string_253 = "printf.c:405"; + __gen_e_acsl_literal_string_253 = "printf.c:411"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_253, - sizeof("printf.c:405")); + sizeof("printf.c:411")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_253); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_253); - __gen_e_acsl_literal_string_252 = "printf.c:404"; + __gen_e_acsl_literal_string_252 = "printf.c:410"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_252, - sizeof("printf.c:404")); + sizeof("printf.c:410")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_252); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_252); - __gen_e_acsl_literal_string_251 = "printf.c:403"; + __gen_e_acsl_literal_string_251 = "printf.c:409"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_251, - sizeof("printf.c:403")); + sizeof("printf.c:409")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_251); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_251); - __gen_e_acsl_literal_string_250 = "printf.c:402"; + __gen_e_acsl_literal_string_250 = "printf.c:408"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_250, - sizeof("printf.c:402")); + sizeof("printf.c:408")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_250); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_250); - __gen_e_acsl_literal_string_249 = "printf.c:401"; + __gen_e_acsl_literal_string_249 = "printf.c:407"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_249, - sizeof("printf.c:401")); + sizeof("printf.c:407")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_249); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_249); - __gen_e_acsl_literal_string_248 = "printf.c:400"; + __gen_e_acsl_literal_string_248 = "printf.c:406"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_248, - sizeof("printf.c:400")); + sizeof("printf.c:406")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_248); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_248); - __gen_e_acsl_literal_string_247 = "printf.c:399"; + __gen_e_acsl_literal_string_247 = "printf.c:405"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_247, - sizeof("printf.c:399")); + sizeof("printf.c:405")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_247); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_247); - __gen_e_acsl_literal_string_246 = "printf.c:398"; + __gen_e_acsl_literal_string_246 = "printf.c:404"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_246, - sizeof("printf.c:398")); + sizeof("printf.c:404")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_246); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_246); - __gen_e_acsl_literal_string_245 = "printf.c:397"; + __gen_e_acsl_literal_string_245 = "printf.c:403"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_245, - sizeof("printf.c:397")); + sizeof("printf.c:403")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_245); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_245); - __gen_e_acsl_literal_string_244 = "printf.c:396"; + __gen_e_acsl_literal_string_244 = "printf.c:402"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_244, - sizeof("printf.c:396")); + sizeof("printf.c:402")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_244); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_244); - __gen_e_acsl_literal_string_243 = "printf.c:395"; + __gen_e_acsl_literal_string_243 = "printf.c:401"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_243, - sizeof("printf.c:395")); + sizeof("printf.c:401")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_243); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_243); - __gen_e_acsl_literal_string_242 = "printf.c:394"; + __gen_e_acsl_literal_string_242 = "printf.c:400"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_242, - sizeof("printf.c:394")); + sizeof("printf.c:400")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_242); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_242); - __gen_e_acsl_literal_string_241 = "printf.c:393"; + __gen_e_acsl_literal_string_241 = "printf.c:399"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_241, - sizeof("printf.c:393")); + sizeof("printf.c:399")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_241); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_241); - __gen_e_acsl_literal_string_240 = "printf.c:392"; + __gen_e_acsl_literal_string_240 = "printf.c:398"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_240, - sizeof("printf.c:392")); + sizeof("printf.c:398")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_240); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_240); - __gen_e_acsl_literal_string_239 = "printf.c:391"; + __gen_e_acsl_literal_string_239 = "printf.c:397"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_239, - sizeof("printf.c:391")); + sizeof("printf.c:397")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_239); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_239); - __gen_e_acsl_literal_string_237 = "printf.c:390"; + __gen_e_acsl_literal_string_237 = "printf.c:396"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_237, - sizeof("printf.c:390")); + sizeof("printf.c:396")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_237); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_237); - __gen_e_acsl_literal_string_235 = "printf.c:389"; + __gen_e_acsl_literal_string_235 = "printf.c:395"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_235, - sizeof("printf.c:389")); + sizeof("printf.c:395")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_235); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_235); - __gen_e_acsl_literal_string_233 = "printf.c:388"; + __gen_e_acsl_literal_string_233 = "printf.c:394"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_233, - sizeof("printf.c:388")); + sizeof("printf.c:394")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_233); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_233); - __gen_e_acsl_literal_string_231 = "printf.c:385"; + __gen_e_acsl_literal_string_231 = "printf.c:391"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_231, - sizeof("printf.c:385")); + sizeof("printf.c:391")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_231); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_231); - __gen_e_acsl_literal_string_229 = "printf.c:384"; + __gen_e_acsl_literal_string_229 = "printf.c:390"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_229, - sizeof("printf.c:384")); + sizeof("printf.c:390")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_229); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_229); - __gen_e_acsl_literal_string_227 = "printf.c:379"; + __gen_e_acsl_literal_string_227 = "printf.c:385"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_227, - sizeof("printf.c:379")); + sizeof("printf.c:385")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_227); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_227); - __gen_e_acsl_literal_string_225 = "printf.c:378"; + __gen_e_acsl_literal_string_225 = "printf.c:384"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_225, - sizeof("printf.c:378")); + sizeof("printf.c:384")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_225); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_225); - __gen_e_acsl_literal_string_223 = "printf.c:376"; + __gen_e_acsl_literal_string_223 = "printf.c:382"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_223, - sizeof("printf.c:376")); + sizeof("printf.c:382")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_223); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_223); - __gen_e_acsl_literal_string_221 = "printf.c:375"; + __gen_e_acsl_literal_string_221 = "printf.c:381"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_221, - sizeof("printf.c:375")); + sizeof("printf.c:381")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_221); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_221); - __gen_e_acsl_literal_string_219 = "printf.c:374"; + __gen_e_acsl_literal_string_219 = "printf.c:380"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_219, - sizeof("printf.c:374")); + sizeof("printf.c:380")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_219); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_219); - __gen_e_acsl_literal_string_217 = "printf.c:373"; + __gen_e_acsl_literal_string_217 = "printf.c:379"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_217, - sizeof("printf.c:373")); + sizeof("printf.c:379")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_217); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_217); - __gen_e_acsl_literal_string_215 = "printf.c:372"; + __gen_e_acsl_literal_string_215 = "printf.c:378"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_215, - sizeof("printf.c:372")); + sizeof("printf.c:378")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_215); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_215); - __gen_e_acsl_literal_string_214 = "printf.c:371"; + __gen_e_acsl_literal_string_214 = "printf.c:377"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_214, - sizeof("printf.c:371")); + sizeof("printf.c:377")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_214); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_214); - __gen_e_acsl_literal_string_212 = "printf.c:370"; + __gen_e_acsl_literal_string_212 = "printf.c:376"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_212, - sizeof("printf.c:370")); + sizeof("printf.c:376")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_212); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_212); - __gen_e_acsl_literal_string_211 = "printf.c:369"; + __gen_e_acsl_literal_string_211 = "printf.c:375"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_211, - sizeof("printf.c:369")); + sizeof("printf.c:375")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_211); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_211); - __gen_e_acsl_literal_string_209 = "printf.c:366"; + __gen_e_acsl_literal_string_209 = "printf.c:372"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_209, - sizeof("printf.c:366")); + sizeof("printf.c:372")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_209); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_209); - __gen_e_acsl_literal_string_208 = "printf.c:365"; + __gen_e_acsl_literal_string_208 = "printf.c:371"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_208, - sizeof("printf.c:365")); + sizeof("printf.c:371")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_208); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_208); - __gen_e_acsl_literal_string_207 = "printf.c:364"; + __gen_e_acsl_literal_string_207 = "printf.c:370"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_207, - sizeof("printf.c:364")); + sizeof("printf.c:370")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_207); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_207); - __gen_e_acsl_literal_string_206 = "printf.c:363"; + __gen_e_acsl_literal_string_206 = "printf.c:369"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_206, - sizeof("printf.c:363")); + sizeof("printf.c:369")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_206); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_206); - __gen_e_acsl_literal_string_205 = "printf.c:362"; + __gen_e_acsl_literal_string_205 = "printf.c:368"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_205, - sizeof("printf.c:362")); + sizeof("printf.c:368")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_205); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_205); - __gen_e_acsl_literal_string_204 = "printf.c:361"; + __gen_e_acsl_literal_string_204 = "printf.c:367"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_204, - sizeof("printf.c:361")); + sizeof("printf.c:367")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_204); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_204); - __gen_e_acsl_literal_string_203 = "printf.c:360"; + __gen_e_acsl_literal_string_203 = "printf.c:366"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_203, - sizeof("printf.c:360")); + sizeof("printf.c:366")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_203); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_203); - __gen_e_acsl_literal_string_202 = "printf.c:359"; + __gen_e_acsl_literal_string_202 = "printf.c:365"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_202, - sizeof("printf.c:359")); + sizeof("printf.c:365")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_202); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_202); - __gen_e_acsl_literal_string_201 = "printf.c:358"; + __gen_e_acsl_literal_string_201 = "printf.c:364"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_201, - sizeof("printf.c:358")); + sizeof("printf.c:364")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_201); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_201); - __gen_e_acsl_literal_string_200 = "printf.c:357"; + __gen_e_acsl_literal_string_200 = "printf.c:363"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_200, - sizeof("printf.c:357")); + sizeof("printf.c:363")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_200); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_200); - __gen_e_acsl_literal_string_199 = "printf.c:356"; + __gen_e_acsl_literal_string_199 = "printf.c:362"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_199, - sizeof("printf.c:356")); + sizeof("printf.c:362")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_199); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_199); - __gen_e_acsl_literal_string_198 = "printf.c:355"; + __gen_e_acsl_literal_string_198 = "printf.c:361"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_198, - sizeof("printf.c:355")); + sizeof("printf.c:361")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_198); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_198); - __gen_e_acsl_literal_string_197 = "printf.c:354"; + __gen_e_acsl_literal_string_197 = "printf.c:360"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_197, - sizeof("printf.c:354")); + sizeof("printf.c:360")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_197); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_197); - __gen_e_acsl_literal_string_195 = "printf.c:353"; + __gen_e_acsl_literal_string_195 = "printf.c:359"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_195, - sizeof("printf.c:353")); + sizeof("printf.c:359")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_195); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_195); - __gen_e_acsl_literal_string_193 = "printf.c:350"; + __gen_e_acsl_literal_string_193 = "printf.c:356"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_193, - sizeof("printf.c:350")); + sizeof("printf.c:356")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_193); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_193); - __gen_e_acsl_literal_string_191 = "printf.c:349"; + __gen_e_acsl_literal_string_191 = "printf.c:355"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_191, - sizeof("printf.c:349")); + sizeof("printf.c:355")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_191); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_191); - __gen_e_acsl_literal_string_189 = "printf.c:348"; + __gen_e_acsl_literal_string_189 = "printf.c:354"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_189, - sizeof("printf.c:348")); + sizeof("printf.c:354")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_189); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_189); - __gen_e_acsl_literal_string_187 = "printf.c:344"; + __gen_e_acsl_literal_string_187 = "printf.c:350"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_187, - sizeof("printf.c:344")); + sizeof("printf.c:350")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_187); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_187); - __gen_e_acsl_literal_string_185 = "printf.c:343"; + __gen_e_acsl_literal_string_185 = "printf.c:349"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_185, - sizeof("printf.c:343")); + sizeof("printf.c:349")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_185); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_185); - __gen_e_acsl_literal_string_183 = "printf.c:342"; + __gen_e_acsl_literal_string_183 = "printf.c:348"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_183, - sizeof("printf.c:342")); + sizeof("printf.c:348")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_183); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_183); - __gen_e_acsl_literal_string_181 = "printf.c:341"; + __gen_e_acsl_literal_string_181 = "printf.c:347"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_181, - sizeof("printf.c:341")); + sizeof("printf.c:347")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_181); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_181); - __gen_e_acsl_literal_string_179 = "printf.c:340"; + __gen_e_acsl_literal_string_179 = "printf.c:346"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_179, - sizeof("printf.c:340")); + sizeof("printf.c:346")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_179); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_179); - __gen_e_acsl_literal_string_177 = "printf.c:339"; + __gen_e_acsl_literal_string_177 = "printf.c:345"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_177, - sizeof("printf.c:339")); + sizeof("printf.c:345")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_177); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_177); - __gen_e_acsl_literal_string_175 = "printf.c:338"; + __gen_e_acsl_literal_string_175 = "printf.c:344"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_175, - sizeof("printf.c:338")); + sizeof("printf.c:344")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_175); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_175); - __gen_e_acsl_literal_string_173 = "printf.c:337"; + __gen_e_acsl_literal_string_173 = "printf.c:343"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_173, - sizeof("printf.c:337")); + sizeof("printf.c:343")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_173); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_173); - __gen_e_acsl_literal_string_169 = "printf.c:336"; + __gen_e_acsl_literal_string_169 = "printf.c:342"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_169, - sizeof("printf.c:336")); + sizeof("printf.c:342")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_169); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_169); - __gen_e_acsl_literal_string_168 = "printf.c:333"; + __gen_e_acsl_literal_string_168 = "printf.c:339"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_168, - sizeof("printf.c:333")); + sizeof("printf.c:339")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_168); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_168); - __gen_e_acsl_literal_string_166 = "printf.c:332"; + __gen_e_acsl_literal_string_166 = "printf.c:338"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_166, - sizeof("printf.c:332")); + sizeof("printf.c:338")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_166); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_166); - __gen_e_acsl_literal_string_164 = "printf.c:331"; + __gen_e_acsl_literal_string_164 = "printf.c:337"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_164, - sizeof("printf.c:331")); + sizeof("printf.c:337")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_164); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_164); - __gen_e_acsl_literal_string_162 = "printf.c:324"; + __gen_e_acsl_literal_string_162 = "printf.c:330"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_162, - sizeof("printf.c:324")); + sizeof("printf.c:330")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_162); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_162); - __gen_e_acsl_literal_string_161 = "printf.c:323"; + __gen_e_acsl_literal_string_161 = "printf.c:329"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_161, - sizeof("printf.c:323")); + sizeof("printf.c:329")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_161); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_161); - __gen_e_acsl_literal_string_159 = "printf.c:322"; + __gen_e_acsl_literal_string_159 = "printf.c:328"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_159, - sizeof("printf.c:322")); + sizeof("printf.c:328")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_159); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_159); - __gen_e_acsl_literal_string_157 = "printf.c:321"; + __gen_e_acsl_literal_string_157 = "printf.c:327"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_157, - sizeof("printf.c:321")); + sizeof("printf.c:327")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_157); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_157); - __gen_e_acsl_literal_string_154 = "printf.c:319"; + __gen_e_acsl_literal_string_154 = "printf.c:325"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_154, - sizeof("printf.c:319")); + sizeof("printf.c:325")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_154); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_154); - __gen_e_acsl_literal_string_153 = "printf.c:314"; + __gen_e_acsl_literal_string_153 = "printf.c:320"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_153, - sizeof("printf.c:314")); + sizeof("printf.c:320")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_153); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_153); - __gen_e_acsl_literal_string_151 = "printf.c:313"; + __gen_e_acsl_literal_string_151 = "printf.c:319"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_151, - sizeof("printf.c:313")); + sizeof("printf.c:319")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_151); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_151); - __gen_e_acsl_literal_string_150 = "printf.c:312"; + __gen_e_acsl_literal_string_150 = "printf.c:318"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_150, - sizeof("printf.c:312")); + sizeof("printf.c:318")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_150); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_150); - __gen_e_acsl_literal_string_148 = "printf.c:311"; + __gen_e_acsl_literal_string_148 = "printf.c:317"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_148, - sizeof("printf.c:311")); + sizeof("printf.c:317")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_148); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_148); - __gen_e_acsl_literal_string_146 = "printf.c:310"; + __gen_e_acsl_literal_string_146 = "printf.c:316"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_146, - sizeof("printf.c:310")); + sizeof("printf.c:316")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_146); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_146); - __gen_e_acsl_literal_string_144 = "printf.c:305"; + __gen_e_acsl_literal_string_144 = "printf.c:311"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_144, - sizeof("printf.c:305")); + sizeof("printf.c:311")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_144); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_144); - __gen_e_acsl_literal_string_142 = "printf.c:304"; + __gen_e_acsl_literal_string_142 = "printf.c:310"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_142, - sizeof("printf.c:304")); + sizeof("printf.c:310")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_142); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_142); - __gen_e_acsl_literal_string_139 = "printf.c:299"; + __gen_e_acsl_literal_string_139 = "printf.c:305"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_139, - sizeof("printf.c:299")); + sizeof("printf.c:305")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_139); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_139); - __gen_e_acsl_literal_string_138 = "printf.c:296"; + __gen_e_acsl_literal_string_138 = "printf.c:302"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_138, - sizeof("printf.c:296")); + sizeof("printf.c:302")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_138); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_138); - __gen_e_acsl_literal_string_136 = "printf.c:295"; + __gen_e_acsl_literal_string_136 = "printf.c:301"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_136, - sizeof("printf.c:295")); + sizeof("printf.c:301")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_136); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_136); - __gen_e_acsl_literal_string_135 = "printf.c:294"; + __gen_e_acsl_literal_string_135 = "printf.c:300"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_135, - sizeof("printf.c:294")); + sizeof("printf.c:300")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_135); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_135); - __gen_e_acsl_literal_string_133 = "printf.c:293"; + __gen_e_acsl_literal_string_133 = "printf.c:299"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_133, - sizeof("printf.c:293")); + sizeof("printf.c:299")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_133); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_133); - __gen_e_acsl_literal_string_131 = "printf.c:292"; + __gen_e_acsl_literal_string_131 = "printf.c:298"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_131, - sizeof("printf.c:292")); + sizeof("printf.c:298")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_131); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_131); - __gen_e_acsl_literal_string_129 = "printf.c:291"; + __gen_e_acsl_literal_string_129 = "printf.c:297"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_129, - sizeof("printf.c:291")); + sizeof("printf.c:297")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_129); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_129); - __gen_e_acsl_literal_string_127 = "printf.c:290"; + __gen_e_acsl_literal_string_127 = "printf.c:296"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_127, - sizeof("printf.c:290")); + sizeof("printf.c:296")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_127); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_127); - __gen_e_acsl_literal_string_124 = "printf.c:289"; + __gen_e_acsl_literal_string_124 = "printf.c:295"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_124, - sizeof("printf.c:289")); + sizeof("printf.c:295")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_124); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_124); - __gen_e_acsl_literal_string_123 = "printf.c:286"; + __gen_e_acsl_literal_string_123 = "printf.c:292"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_123, - sizeof("printf.c:286")); + sizeof("printf.c:292")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_123); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_123); - __gen_e_acsl_literal_string_121 = "printf.c:285"; + __gen_e_acsl_literal_string_121 = "printf.c:291"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_121, - sizeof("printf.c:285")); + sizeof("printf.c:291")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_121); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_121); - __gen_e_acsl_literal_string_119 = "printf.c:284"; + __gen_e_acsl_literal_string_119 = "printf.c:290"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_119, - sizeof("printf.c:284")); + sizeof("printf.c:290")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_119); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_119); - __gen_e_acsl_literal_string_117 = "printf.c:283"; + __gen_e_acsl_literal_string_117 = "printf.c:289"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_117, - sizeof("printf.c:283")); + sizeof("printf.c:289")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_117); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_117); - __gen_e_acsl_literal_string_115 = "printf.c:282"; + __gen_e_acsl_literal_string_115 = "printf.c:288"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_115, - sizeof("printf.c:282")); + sizeof("printf.c:288")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_115); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_115); - __gen_e_acsl_literal_string_113 = "printf.c:281"; + __gen_e_acsl_literal_string_113 = "printf.c:287"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_113, - sizeof("printf.c:281")); + sizeof("printf.c:287")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_113); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_113); - __gen_e_acsl_literal_string_111 = "printf.c:280"; + __gen_e_acsl_literal_string_111 = "printf.c:286"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_111, - sizeof("printf.c:280")); + sizeof("printf.c:286")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_111); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_111); - __gen_e_acsl_literal_string_109 = "printf.c:276"; + __gen_e_acsl_literal_string_109 = "printf.c:282"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_109, - sizeof("printf.c:276")); + sizeof("printf.c:282")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_109); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_109); - __gen_e_acsl_literal_string_107 = "printf.c:273"; + __gen_e_acsl_literal_string_107 = "printf.c:279"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_107, - sizeof("printf.c:273")); + sizeof("printf.c:279")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_107); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_107); - __gen_e_acsl_literal_string_105 = "printf.c:271"; + __gen_e_acsl_literal_string_105 = "printf.c:277"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_105, - sizeof("printf.c:271")); + sizeof("printf.c:277")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_105); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_105); - __gen_e_acsl_literal_string_103 = "printf.c:270"; + __gen_e_acsl_literal_string_103 = "printf.c:276"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_103, - sizeof("printf.c:270")); + sizeof("printf.c:276")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_103); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_103); - __gen_e_acsl_literal_string_101 = "printf.c:269"; + __gen_e_acsl_literal_string_101 = "printf.c:275"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_101, - sizeof("printf.c:269")); + sizeof("printf.c:275")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_101); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_101); - __gen_e_acsl_literal_string_99 = "printf.c:268"; + __gen_e_acsl_literal_string_99 = "printf.c:274"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_99, - sizeof("printf.c:268")); + sizeof("printf.c:274")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_99); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_99); - __gen_e_acsl_literal_string_97 = "printf.c:267"; + __gen_e_acsl_literal_string_97 = "printf.c:273"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_97, - sizeof("printf.c:267")); + sizeof("printf.c:273")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_97); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_97); - __gen_e_acsl_literal_string_95 = "printf.c:266"; + __gen_e_acsl_literal_string_95 = "printf.c:272"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_95, - sizeof("printf.c:266")); + sizeof("printf.c:272")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_95); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_95); - __gen_e_acsl_literal_string_93 = "printf.c:265"; + __gen_e_acsl_literal_string_93 = "printf.c:271"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_93, - sizeof("printf.c:265")); + sizeof("printf.c:271")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_93); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_93); - __gen_e_acsl_literal_string_91 = "printf.c:264"; + __gen_e_acsl_literal_string_91 = "printf.c:270"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_91, - sizeof("printf.c:264")); + sizeof("printf.c:270")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_91); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_91); - __gen_e_acsl_literal_string_89 = "printf.c:262"; + __gen_e_acsl_literal_string_89 = "printf.c:268"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_89, - sizeof("printf.c:262")); + sizeof("printf.c:268")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_89); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_89); - __gen_e_acsl_literal_string_88 = "printf.c:261"; + __gen_e_acsl_literal_string_88 = "printf.c:267"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_88, - sizeof("printf.c:261")); + sizeof("printf.c:267")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_88); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_88); - __gen_e_acsl_literal_string_86 = "printf.c:260"; + __gen_e_acsl_literal_string_86 = "printf.c:266"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_86, - sizeof("printf.c:260")); + sizeof("printf.c:266")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_86); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_86); - __gen_e_acsl_literal_string_84 = "printf.c:259"; + __gen_e_acsl_literal_string_84 = "printf.c:265"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_84, - sizeof("printf.c:259")); + sizeof("printf.c:265")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_84); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_84); - __gen_e_acsl_literal_string_82 = "printf.c:258"; + __gen_e_acsl_literal_string_82 = "printf.c:264"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_82, - sizeof("printf.c:258")); + sizeof("printf.c:264")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_82); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_82); - __gen_e_acsl_literal_string_80 = "printf.c:257"; + __gen_e_acsl_literal_string_80 = "printf.c:263"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_80, - sizeof("printf.c:257")); + sizeof("printf.c:263")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_80); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_80); - __gen_e_acsl_literal_string_76 = "printf.c:256"; + __gen_e_acsl_literal_string_76 = "printf.c:262"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_76, - sizeof("printf.c:256")); + sizeof("printf.c:262")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_76); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_76); - __gen_e_acsl_literal_string_75 = "printf.c:253"; + __gen_e_acsl_literal_string_75 = "printf.c:259"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_75, - sizeof("printf.c:253")); + sizeof("printf.c:259")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_75); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_75); - __gen_e_acsl_literal_string_73 = "printf.c:252"; + __gen_e_acsl_literal_string_73 = "printf.c:258"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_73, - sizeof("printf.c:252")); + sizeof("printf.c:258")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_73); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_73); - __gen_e_acsl_literal_string_72 = "printf.c:251"; + __gen_e_acsl_literal_string_72 = "printf.c:257"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_72, - sizeof("printf.c:251")); + sizeof("printf.c:257")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_72); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_72); - __gen_e_acsl_literal_string_70 = "printf.c:250"; + __gen_e_acsl_literal_string_70 = "printf.c:256"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_70, - sizeof("printf.c:250")); + sizeof("printf.c:256")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_70); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_70); - __gen_e_acsl_literal_string_68 = "printf.c:249"; + __gen_e_acsl_literal_string_68 = "printf.c:255"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_68, - sizeof("printf.c:249")); + sizeof("printf.c:255")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_68); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_68); - __gen_e_acsl_literal_string_66 = "printf.c:248"; + __gen_e_acsl_literal_string_66 = "printf.c:254"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_66, - sizeof("printf.c:248")); + sizeof("printf.c:254")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_66); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_66); - __gen_e_acsl_literal_string_64 = "printf.c:247"; + __gen_e_acsl_literal_string_64 = "printf.c:253"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_64, - sizeof("printf.c:247")); + sizeof("printf.c:253")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_64); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_64); - __gen_e_acsl_literal_string_61 = "printf.c:246"; + __gen_e_acsl_literal_string_61 = "printf.c:252"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_61, - sizeof("printf.c:246")); + sizeof("printf.c:252")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_61); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_61); - __gen_e_acsl_literal_string_60 = "printf.c:243"; + __gen_e_acsl_literal_string_60 = "printf.c:249"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_60, - sizeof("printf.c:243")); + sizeof("printf.c:249")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_60); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_60); - __gen_e_acsl_literal_string_58 = "printf.c:242"; + __gen_e_acsl_literal_string_58 = "printf.c:248"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_58, - sizeof("printf.c:242")); + sizeof("printf.c:248")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_58); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_58); - __gen_e_acsl_literal_string_57 = "printf.c:241"; + __gen_e_acsl_literal_string_57 = "printf.c:247"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_57, - sizeof("printf.c:241")); + sizeof("printf.c:247")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_57); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_57); - __gen_e_acsl_literal_string_55 = "printf.c:240"; + __gen_e_acsl_literal_string_55 = "printf.c:246"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_55, - sizeof("printf.c:240")); + sizeof("printf.c:246")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_55); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_55); - __gen_e_acsl_literal_string_53 = "printf.c:239"; + __gen_e_acsl_literal_string_53 = "printf.c:245"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_53, - sizeof("printf.c:239")); + sizeof("printf.c:245")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_53); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_53); - __gen_e_acsl_literal_string_51 = "printf.c:238"; + __gen_e_acsl_literal_string_51 = "printf.c:244"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_51, - sizeof("printf.c:238")); + sizeof("printf.c:244")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_51); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_51); - __gen_e_acsl_literal_string_49 = "printf.c:237"; + __gen_e_acsl_literal_string_49 = "printf.c:243"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_49, - sizeof("printf.c:237")); + sizeof("printf.c:243")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_49); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_49); - __gen_e_acsl_literal_string_45 = "printf.c:236"; + __gen_e_acsl_literal_string_45 = "printf.c:242"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_45, - sizeof("printf.c:236")); + sizeof("printf.c:242")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_45); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_45); - __gen_e_acsl_literal_string_44 = "printf.c:230"; + __gen_e_acsl_literal_string_44 = "printf.c:236"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_44, - sizeof("printf.c:230")); + sizeof("printf.c:236")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_44); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_44); - __gen_e_acsl_literal_string_42 = "printf.c:229"; + __gen_e_acsl_literal_string_42 = "printf.c:235"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_42, - sizeof("printf.c:229")); + sizeof("printf.c:235")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_42); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_42); - __gen_e_acsl_literal_string_40 = "printf.c:228"; + __gen_e_acsl_literal_string_40 = "printf.c:234"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_40, - sizeof("printf.c:228")); + sizeof("printf.c:234")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_40); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_40); - __gen_e_acsl_literal_string_36 = "printf.c:222"; + __gen_e_acsl_literal_string_36 = "printf.c:228"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_36, - sizeof("printf.c:222")); + sizeof("printf.c:228")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_36); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_36); - __gen_e_acsl_literal_string_33 = "printf.c:219"; + __gen_e_acsl_literal_string_33 = "printf.c:225"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_33, - sizeof("printf.c:219")); + sizeof("printf.c:225")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_33); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_33); - __gen_e_acsl_literal_string_30 = "printf.c:213"; + __gen_e_acsl_literal_string_30 = "printf.c:219"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_30, - sizeof("printf.c:213")); + sizeof("printf.c:219")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_30); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_30); - __gen_e_acsl_literal_string_29 = "printf.c:210"; + __gen_e_acsl_literal_string_29 = "printf.c:216"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_29, - sizeof("printf.c:210")); + sizeof("printf.c:216")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_29); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_29); - __gen_e_acsl_literal_string_27 = "printf.c:208"; + __gen_e_acsl_literal_string_27 = "printf.c:214"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_27, - sizeof("printf.c:208")); + sizeof("printf.c:214")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_27); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_27); - __gen_e_acsl_literal_string_25 = "printf.c:205"; + __gen_e_acsl_literal_string_25 = "printf.c:211"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_25, - sizeof("printf.c:205")); + sizeof("printf.c:211")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_25); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_25); - __gen_e_acsl_literal_string_23 = "printf.c:203"; + __gen_e_acsl_literal_string_23 = "printf.c:209"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_23, - sizeof("printf.c:203")); + sizeof("printf.c:209")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_23); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_23); - __gen_e_acsl_literal_string_21 = "printf.c:201"; + __gen_e_acsl_literal_string_21 = "printf.c:207"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_21, - sizeof("printf.c:201")); + sizeof("printf.c:207")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_21); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_21); - __gen_e_acsl_literal_string_19 = "printf.c:198"; + __gen_e_acsl_literal_string_19 = "printf.c:204"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_19, - sizeof("printf.c:198")); + sizeof("printf.c:204")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_19); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_19); - __gen_e_acsl_literal_string_18 = "printf.c:193"; + __gen_e_acsl_literal_string_18 = "printf.c:199"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_18, - sizeof("printf.c:193")); + sizeof("printf.c:199")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_18); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_18); - __gen_e_acsl_literal_string_16 = "printf.c:190"; + __gen_e_acsl_literal_string_16 = "printf.c:196"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_16, - sizeof("printf.c:190")); + sizeof("printf.c:196")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_16); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_16); - __gen_e_acsl_literal_string_14 = "printf.c:187"; + __gen_e_acsl_literal_string_14 = "printf.c:193"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_14, - sizeof("printf.c:187")); + sizeof("printf.c:193")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_14); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_14); - __gen_e_acsl_literal_string_12 = "printf.c:184"; + __gen_e_acsl_literal_string_12 = "printf.c:190"; __e_acsl_store_block((void *)__gen_e_acsl_literal_string_12, - sizeof("printf.c:184")); + sizeof("printf.c:190")); __e_acsl_full_init((void *)__gen_e_acsl_literal_string_12); __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string_12); __gen_e_acsl_literal_string_35 = "oxXaAeEfFgG"; diff --git a/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle b/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle index 6a2b2551ba6767735dd2b98137f8b34c0db34189..e7a99a994e20892384a9ac2fb492aa4eaa82dbc4 100644 --- a/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle @@ -1,4 +1,4 @@ -[kernel:parser:decimal-float] printf.c:93: Warning: +[kernel:parser:decimal-float] printf.c:99: Warning: Floating-point constant 0.2 is not represented exactly. Will use 0x1.999999999999ap-3. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [e-acsl] beginning translation. @@ -107,5 +107,5 @@ [eva:alarm] FRAMAC_SHARE/libc/unistd.h:847: Warning: function __e_acsl_assert_register_int: precondition data->values == \null || \valid(data->values) got status unknown. -[kernel:annot:missing-spec] printf.c:184: Warning: +[kernel:annot:missing-spec] printf.c:190: Warning: Neither code nor specification for function __e_acsl_builtin_printf, generating default assigns from the prototype diff --git a/src/plugins/e-acsl/tests/format/oracle_dev/fprintf.e-acsl.err.log b/src/plugins/e-acsl/tests/format/oracle_dev/fprintf.e-acsl.err.log index 0790d3dfebdd254bb1c70d324abf7abf662b1429..eb2e1226a40970121de6d6d8e48a12d42771c53f 100644 --- a/src/plugins/e-acsl/tests/format/oracle_dev/fprintf.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/format/oracle_dev/fprintf.e-acsl.err.log @@ -1,28 +1,28 @@ -TEST 1: OK: Expected execution at fprintf.c:16 +TEST 1: OK: Expected execution at fprintf.c:22 fprintf: attempt to write to an invalid stream -TEST 2: OK: Expected signal at fprintf.c:17 -TEST 3: OK: Expected execution at fprintf.c:20 +TEST 2: OK: Expected signal at fprintf.c:23 +TEST 3: OK: Expected execution at fprintf.c:26 fprintf: attempt to write to an invalid stream -TEST 4: OK: Expected signal at fprintf.c:22 +TEST 4: OK: Expected signal at fprintf.c:28 fprintf: attempt to write to an invalid stream -TEST 5: OK: Expected signal at fprintf.c:23 -TEST 6: OK: Expected execution at fprintf.c:28 +TEST 5: OK: Expected signal at fprintf.c:29 +TEST 6: OK: Expected execution at fprintf.c:34 dprintf: attempt to write to a closed file descriptor 3 -TEST 7: OK: Expected signal at fprintf.c:29 -TEST 8: OK: Expected execution at fprintf.c:35 -TEST 9: OK: Expected execution at fprintf.c:36 +TEST 7: OK: Expected signal at fprintf.c:35 +TEST 8: OK: Expected execution at fprintf.c:41 +TEST 9: OK: Expected execution at fprintf.c:42 sprintf: output buffer is unallocated or has insufficient length to store 6 characters or not writeable -TEST 10: OK: Expected signal at fprintf.c:37 +TEST 10: OK: Expected signal at fprintf.c:43 sprintf: output buffer is unallocated or has insufficient length to store 6 characters or not writeable -TEST 11: OK: Expected signal at fprintf.c:38 +TEST 11: OK: Expected signal at fprintf.c:44 sprintf: output buffer is unallocated or has insufficient length to store 6 characters or not writeable -TEST 12: OK: Expected signal at fprintf.c:39 -TEST 13: OK: Expected execution at fprintf.c:42 -TEST 14: OK: Expected execution at fprintf.c:43 +TEST 12: OK: Expected signal at fprintf.c:45 +TEST 13: OK: Expected execution at fprintf.c:48 +TEST 14: OK: Expected execution at fprintf.c:49 sprintf: output buffer is unallocated or has insufficient length to store 6 characters and \0 terminator or not writeable -TEST 15: OK: Expected signal at fprintf.c:44 +TEST 15: OK: Expected signal at fprintf.c:50 sprintf: output buffer is unallocated or has insufficient length to store 6 characters and \0 terminator or not writeable -TEST 16: OK: Expected signal at fprintf.c:45 +TEST 16: OK: Expected signal at fprintf.c:51 sprintf: output buffer is unallocated or has insufficient length to store 6 characters and \0 terminator or not writeable -TEST 17: OK: Expected signal at fprintf.c:46 -TEST 18: OK: Expected execution at fprintf.c:48 +TEST 17: OK: Expected signal at fprintf.c:52 +TEST 18: OK: Expected execution at fprintf.c:54 diff --git a/src/plugins/e-acsl/tests/format/oracle_dev/printf.e-acsl.err.log b/src/plugins/e-acsl/tests/format/oracle_dev/printf.e-acsl.err.log index a67c86d543df0f60ab422056c3bd561358d9244d..527a821d37d6ecbcbbec8919650f1c7546759e85 100644 --- a/src/plugins/e-acsl/tests/format/oracle_dev/printf.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/format/oracle_dev/printf.e-acsl.err.log @@ -1,575 +1,575 @@ -TEST 1: OK: Expected execution at printf.c:184 -TEST 2: OK: Expected execution at printf.c:187 +TEST 1: OK: Expected execution at printf.c:190 +TEST 2: OK: Expected execution at printf.c:193 printf: directive 4 (%u) in format "%s - %s and say it %d or %u more times " has no argument -TEST 3: OK: Expected signal at printf.c:190 -TEST 4: OK: Expected execution at printf.c:193 +TEST 3: OK: Expected signal at printf.c:196 +TEST 4: OK: Expected execution at printf.c:199 printf: invalid format string (unallocated or unterminated) -TEST 5: OK: Expected signal at printf.c:198 -TEST 6: OK: Expected execution at printf.c:201 +TEST 5: OK: Expected signal at printf.c:204 +TEST 6: OK: Expected execution at printf.c:207 printf: directive 4 (%4$s) in format "%4$s Say it %2$d or %1$u times " has no argument -TEST 7: OK: Expected signal at printf.c:203 +TEST 7: OK: Expected signal at printf.c:209 Format error: illegal format specifier '$' -TEST 8: OK: Expected signal at printf.c:205 +TEST 8: OK: Expected signal at printf.c:211 Format error: "%s Say it %2$d or %3$u times ": numbered and non-numbered directives cannot be mixed -TEST 9: OK: Expected signal at printf.c:208 -TEST 10: OK: Expected execution at printf.c:210 -TEST 11: OK: Expected execution at printf.c:213 -TEST 12: OK: Expected execution at printf.c:213 -TEST 13: OK: Expected execution at printf.c:213 -TEST 14: OK: Expected execution at printf.c:213 -TEST 15: OK: Expected execution at printf.c:213 -TEST 16: OK: Expected execution at printf.c:213 -TEST 17: OK: Expected execution at printf.c:213 -TEST 18: OK: Expected execution at printf.c:213 -TEST 19: OK: Expected execution at printf.c:213 -TEST 20: OK: Expected execution at printf.c:213 -TEST 21: OK: Expected execution at printf.c:213 -TEST 22: OK: Expected execution at printf.c:213 -TEST 23: OK: Expected execution at printf.c:213 +TEST 9: OK: Expected signal at printf.c:214 +TEST 10: OK: Expected execution at printf.c:216 +TEST 11: OK: Expected execution at printf.c:219 +TEST 12: OK: Expected execution at printf.c:219 +TEST 13: OK: Expected execution at printf.c:219 +TEST 14: OK: Expected execution at printf.c:219 +TEST 15: OK: Expected execution at printf.c:219 +TEST 16: OK: Expected execution at printf.c:219 +TEST 17: OK: Expected execution at printf.c:219 +TEST 18: OK: Expected execution at printf.c:219 +TEST 19: OK: Expected execution at printf.c:219 +TEST 20: OK: Expected execution at printf.c:219 +TEST 21: OK: Expected execution at printf.c:219 +TEST 22: OK: Expected execution at printf.c:219 +TEST 23: OK: Expected execution at printf.c:219 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of precision [.] to format specifier [c] -TEST 24: OK: Expected signal at printf.c:213 -TEST 25: OK: Expected execution at printf.c:213 +TEST 24: OK: Expected signal at printf.c:219 +TEST 25: OK: Expected execution at printf.c:219 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of precision [.] to format specifier [p] -TEST 26: OK: Expected signal at printf.c:213 +TEST 26: OK: Expected signal at printf.c:219 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of precision [.] to format specifier [n] -TEST 27: OK: Expected signal at printf.c:213 +TEST 27: OK: Expected signal at printf.c:219 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [#] to format specifier [d] -TEST 28: OK: Expected signal at printf.c:219 +TEST 28: OK: Expected signal at printf.c:225 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [#] to format specifier [i] -TEST 29: OK: Expected signal at printf.c:219 -TEST 30: OK: Expected execution at printf.c:219 +TEST 29: OK: Expected signal at printf.c:225 +TEST 30: OK: Expected execution at printf.c:225 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [#] to format specifier [u] -TEST 31: OK: Expected signal at printf.c:219 -TEST 32: OK: Expected execution at printf.c:219 -TEST 33: OK: Expected execution at printf.c:219 -TEST 34: OK: Expected execution at printf.c:219 -TEST 35: OK: Expected execution at printf.c:219 -TEST 36: OK: Expected execution at printf.c:219 -TEST 37: OK: Expected execution at printf.c:219 -TEST 38: OK: Expected execution at printf.c:219 -TEST 39: OK: Expected execution at printf.c:219 -TEST 40: OK: Expected execution at printf.c:219 +TEST 31: OK: Expected signal at printf.c:225 +TEST 32: OK: Expected execution at printf.c:225 +TEST 33: OK: Expected execution at printf.c:225 +TEST 34: OK: Expected execution at printf.c:225 +TEST 35: OK: Expected execution at printf.c:225 +TEST 36: OK: Expected execution at printf.c:225 +TEST 37: OK: Expected execution at printf.c:225 +TEST 38: OK: Expected execution at printf.c:225 +TEST 39: OK: Expected execution at printf.c:225 +TEST 40: OK: Expected execution at printf.c:225 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [#] to format specifier [c] -TEST 41: OK: Expected signal at printf.c:219 +TEST 41: OK: Expected signal at printf.c:225 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [#] to format specifier [s] -TEST 42: OK: Expected signal at printf.c:219 +TEST 42: OK: Expected signal at printf.c:225 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [#] to format specifier [p] -TEST 43: OK: Expected signal at printf.c:219 +TEST 43: OK: Expected signal at printf.c:225 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [#] to format specifier [n] -TEST 44: OK: Expected signal at printf.c:219 -TEST 45: OK: Expected execution at printf.c:222 -TEST 46: OK: Expected execution at printf.c:222 -TEST 47: OK: Expected execution at printf.c:222 -TEST 48: OK: Expected execution at printf.c:222 -TEST 49: OK: Expected execution at printf.c:222 -TEST 50: OK: Expected execution at printf.c:222 -TEST 51: OK: Expected execution at printf.c:222 -TEST 52: OK: Expected execution at printf.c:222 -TEST 53: OK: Expected execution at printf.c:222 -TEST 54: OK: Expected execution at printf.c:222 -TEST 55: OK: Expected execution at printf.c:222 -TEST 56: OK: Expected execution at printf.c:222 -TEST 57: OK: Expected execution at printf.c:222 +TEST 44: OK: Expected signal at printf.c:225 +TEST 45: OK: Expected execution at printf.c:228 +TEST 46: OK: Expected execution at printf.c:228 +TEST 47: OK: Expected execution at printf.c:228 +TEST 48: OK: Expected execution at printf.c:228 +TEST 49: OK: Expected execution at printf.c:228 +TEST 50: OK: Expected execution at printf.c:228 +TEST 51: OK: Expected execution at printf.c:228 +TEST 52: OK: Expected execution at printf.c:228 +TEST 53: OK: Expected execution at printf.c:228 +TEST 54: OK: Expected execution at printf.c:228 +TEST 55: OK: Expected execution at printf.c:228 +TEST 56: OK: Expected execution at printf.c:228 +TEST 57: OK: Expected execution at printf.c:228 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [0] to format specifier [c] -TEST 58: OK: Expected signal at printf.c:222 +TEST 58: OK: Expected signal at printf.c:228 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [0] to format specifier [s] -TEST 59: OK: Expected signal at printf.c:222 +TEST 59: OK: Expected signal at printf.c:228 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [0] to format specifier [p] -TEST 60: OK: Expected signal at printf.c:222 +TEST 60: OK: Expected signal at printf.c:228 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [0] to format specifier [n] -TEST 61: OK: Expected signal at printf.c:222 -TEST 62: OK: Expected execution at printf.c:228 -TEST 63: OK: Expected execution at printf.c:229 +TEST 61: OK: Expected signal at printf.c:228 +TEST 62: OK: Expected execution at printf.c:234 +TEST 63: OK: Expected execution at printf.c:235 Format error: illegal format specifier 'l' -TEST 64: OK: Expected signal at printf.c:230 +TEST 64: OK: Expected signal at printf.c:236 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [f] -TEST 65: OK: Expected signal at printf.c:236 +TEST 65: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [F] -TEST 66: OK: Expected signal at printf.c:236 +TEST 66: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [e] -TEST 67: OK: Expected signal at printf.c:236 +TEST 67: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [E] -TEST 68: OK: Expected signal at printf.c:236 +TEST 68: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [g] -TEST 69: OK: Expected signal at printf.c:236 +TEST 69: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [G] -TEST 70: OK: Expected signal at printf.c:236 +TEST 70: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [a] -TEST 71: OK: Expected signal at printf.c:236 +TEST 71: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [A] -TEST 72: OK: Expected signal at printf.c:236 +TEST 72: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [c] -TEST 73: OK: Expected signal at printf.c:236 +TEST 73: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [s] -TEST 74: OK: Expected signal at printf.c:236 +TEST 74: OK: Expected signal at printf.c:242 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [hh] to format specifier [p] -TEST 75: OK: Expected signal at printf.c:236 -TEST 76: OK: Expected execution at printf.c:237 -TEST 77: OK: Expected execution at printf.c:238 -TEST 78: OK: Expected execution at printf.c:239 -TEST 79: OK: Expected execution at printf.c:240 -TEST 80: OK: Expected execution at printf.c:241 -TEST 81: OK: Expected execution at printf.c:242 -TEST 82: OK: Expected execution at printf.c:243 +TEST 75: OK: Expected signal at printf.c:242 +TEST 76: OK: Expected execution at printf.c:243 +TEST 77: OK: Expected execution at printf.c:244 +TEST 78: OK: Expected execution at printf.c:245 +TEST 79: OK: Expected execution at printf.c:246 +TEST 80: OK: Expected execution at printf.c:247 +TEST 81: OK: Expected execution at printf.c:248 +TEST 82: OK: Expected execution at printf.c:249 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [f] -TEST 83: OK: Expected signal at printf.c:246 +TEST 83: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [F] -TEST 84: OK: Expected signal at printf.c:246 +TEST 84: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [e] -TEST 85: OK: Expected signal at printf.c:246 +TEST 85: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [E] -TEST 86: OK: Expected signal at printf.c:246 +TEST 86: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [g] -TEST 87: OK: Expected signal at printf.c:246 +TEST 87: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [G] -TEST 88: OK: Expected signal at printf.c:246 +TEST 88: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [a] -TEST 89: OK: Expected signal at printf.c:246 +TEST 89: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [A] -TEST 90: OK: Expected signal at printf.c:246 +TEST 90: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [c] -TEST 91: OK: Expected signal at printf.c:246 +TEST 91: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [s] -TEST 92: OK: Expected signal at printf.c:246 +TEST 92: OK: Expected signal at printf.c:252 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [h] to format specifier [p] -TEST 93: OK: Expected signal at printf.c:246 -TEST 94: OK: Expected execution at printf.c:247 -TEST 95: OK: Expected execution at printf.c:248 -TEST 96: OK: Expected execution at printf.c:249 -TEST 97: OK: Expected execution at printf.c:250 -TEST 98: OK: Expected execution at printf.c:251 -TEST 99: OK: Expected execution at printf.c:252 -TEST 100: OK: Expected execution at printf.c:253 +TEST 93: OK: Expected signal at printf.c:252 +TEST 94: OK: Expected execution at printf.c:253 +TEST 95: OK: Expected execution at printf.c:254 +TEST 96: OK: Expected execution at printf.c:255 +TEST 97: OK: Expected execution at printf.c:256 +TEST 98: OK: Expected execution at printf.c:257 +TEST 99: OK: Expected execution at printf.c:258 +TEST 100: OK: Expected execution at printf.c:259 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [l] to format specifier [p] -TEST 101: OK: Expected signal at printf.c:256 -TEST 102: OK: Expected execution at printf.c:257 -TEST 103: OK: Expected execution at printf.c:258 -TEST 104: OK: Expected execution at printf.c:259 -TEST 105: OK: Expected execution at printf.c:260 -TEST 106: OK: Expected execution at printf.c:261 -TEST 107: OK: Expected execution at printf.c:262 -TEST 108: OK: Expected execution at printf.c:264 -TEST 109: OK: Expected execution at printf.c:265 -TEST 110: OK: Expected execution at printf.c:266 -TEST 111: OK: Expected execution at printf.c:267 -TEST 112: OK: Expected execution at printf.c:268 -TEST 113: OK: Expected execution at printf.c:269 -TEST 114: OK: Expected execution at printf.c:270 -TEST 115: OK: Expected execution at printf.c:271 -TEST 116: OK: Expected execution at printf.c:273 -TEST 117: OK: Expected execution at printf.c:276 -TEST 118: OK: Expected execution at printf.c:280 -TEST 119: OK: Expected execution at printf.c:281 -TEST 120: OK: Expected execution at printf.c:282 -TEST 121: OK: Expected execution at printf.c:283 -TEST 122: OK: Expected execution at printf.c:284 -TEST 123: OK: Expected execution at printf.c:285 -TEST 124: OK: Expected execution at printf.c:286 +TEST 101: OK: Expected signal at printf.c:262 +TEST 102: OK: Expected execution at printf.c:263 +TEST 103: OK: Expected execution at printf.c:264 +TEST 104: OK: Expected execution at printf.c:265 +TEST 105: OK: Expected execution at printf.c:266 +TEST 106: OK: Expected execution at printf.c:267 +TEST 107: OK: Expected execution at printf.c:268 +TEST 108: OK: Expected execution at printf.c:270 +TEST 109: OK: Expected execution at printf.c:271 +TEST 110: OK: Expected execution at printf.c:272 +TEST 111: OK: Expected execution at printf.c:273 +TEST 112: OK: Expected execution at printf.c:274 +TEST 113: OK: Expected execution at printf.c:275 +TEST 114: OK: Expected execution at printf.c:276 +TEST 115: OK: Expected execution at printf.c:277 +TEST 116: OK: Expected execution at printf.c:279 +TEST 117: OK: Expected execution at printf.c:282 +TEST 118: OK: Expected execution at printf.c:286 +TEST 119: OK: Expected execution at printf.c:287 +TEST 120: OK: Expected execution at printf.c:288 +TEST 121: OK: Expected execution at printf.c:289 +TEST 122: OK: Expected execution at printf.c:290 +TEST 123: OK: Expected execution at printf.c:291 +TEST 124: OK: Expected execution at printf.c:292 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [f] -TEST 125: OK: Expected signal at printf.c:289 +TEST 125: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [F] -TEST 126: OK: Expected signal at printf.c:289 +TEST 126: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [e] -TEST 127: OK: Expected signal at printf.c:289 +TEST 127: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [E] -TEST 128: OK: Expected signal at printf.c:289 +TEST 128: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [g] -TEST 129: OK: Expected signal at printf.c:289 +TEST 129: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [G] -TEST 130: OK: Expected signal at printf.c:289 +TEST 130: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [a] -TEST 131: OK: Expected signal at printf.c:289 +TEST 131: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [A] -TEST 132: OK: Expected signal at printf.c:289 +TEST 132: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [c] -TEST 133: OK: Expected signal at printf.c:289 +TEST 133: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [s] -TEST 134: OK: Expected signal at printf.c:289 +TEST 134: OK: Expected signal at printf.c:295 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [j] to format specifier [p] -TEST 135: OK: Expected signal at printf.c:289 -TEST 136: OK: Expected execution at printf.c:290 -TEST 137: OK: Expected execution at printf.c:291 -TEST 138: OK: Expected execution at printf.c:292 -TEST 139: OK: Expected execution at printf.c:293 -TEST 140: OK: Expected execution at printf.c:294 -TEST 141: OK: Expected execution at printf.c:295 -TEST 142: OK: Expected execution at printf.c:296 +TEST 135: OK: Expected signal at printf.c:295 +TEST 136: OK: Expected execution at printf.c:296 +TEST 137: OK: Expected execution at printf.c:297 +TEST 138: OK: Expected execution at printf.c:298 +TEST 139: OK: Expected execution at printf.c:299 +TEST 140: OK: Expected execution at printf.c:300 +TEST 141: OK: Expected execution at printf.c:301 +TEST 142: OK: Expected execution at printf.c:302 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [f] -TEST 143: OK: Expected signal at printf.c:299 +TEST 143: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [F] -TEST 144: OK: Expected signal at printf.c:299 +TEST 144: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [e] -TEST 145: OK: Expected signal at printf.c:299 +TEST 145: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [E] -TEST 146: OK: Expected signal at printf.c:299 +TEST 146: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [g] -TEST 147: OK: Expected signal at printf.c:299 +TEST 147: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [G] -TEST 148: OK: Expected signal at printf.c:299 +TEST 148: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [a] -TEST 149: OK: Expected signal at printf.c:299 +TEST 149: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [A] -TEST 150: OK: Expected signal at printf.c:299 +TEST 150: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [c] -TEST 151: OK: Expected signal at printf.c:299 +TEST 151: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [s] -TEST 152: OK: Expected signal at printf.c:299 +TEST 152: OK: Expected signal at printf.c:305 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [z] to format specifier [p] -TEST 153: OK: Expected signal at printf.c:299 -TEST 154: OK: Expected execution at printf.c:304 -TEST 155: OK: Expected execution at printf.c:305 -TEST 156: OK: Expected execution at printf.c:310 -TEST 157: OK: Expected execution at printf.c:311 -TEST 158: OK: Expected execution at printf.c:312 -TEST 159: OK: Expected execution at printf.c:313 -TEST 160: OK: Expected execution at printf.c:314 +TEST 153: OK: Expected signal at printf.c:305 +TEST 154: OK: Expected execution at printf.c:310 +TEST 155: OK: Expected execution at printf.c:311 +TEST 156: OK: Expected execution at printf.c:316 +TEST 157: OK: Expected execution at printf.c:317 +TEST 158: OK: Expected execution at printf.c:318 +TEST 159: OK: Expected execution at printf.c:319 +TEST 160: OK: Expected execution at printf.c:320 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [f] -TEST 161: OK: Expected signal at printf.c:319 +TEST 161: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [F] -TEST 162: OK: Expected signal at printf.c:319 +TEST 162: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [e] -TEST 163: OK: Expected signal at printf.c:319 +TEST 163: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [E] -TEST 164: OK: Expected signal at printf.c:319 +TEST 164: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [g] -TEST 165: OK: Expected signal at printf.c:319 +TEST 165: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [G] -TEST 166: OK: Expected signal at printf.c:319 +TEST 166: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [a] -TEST 167: OK: Expected signal at printf.c:319 +TEST 167: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [A] -TEST 168: OK: Expected signal at printf.c:319 +TEST 168: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [c] -TEST 169: OK: Expected signal at printf.c:319 +TEST 169: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [s] -TEST 170: OK: Expected signal at printf.c:319 +TEST 170: OK: Expected signal at printf.c:325 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [t] to format specifier [p] -TEST 171: OK: Expected signal at printf.c:319 -TEST 172: OK: Expected execution at printf.c:321 -TEST 173: OK: Expected execution at printf.c:322 -TEST 174: OK: Expected execution at printf.c:323 -TEST 175: OK: Expected execution at printf.c:324 -TEST 176: OK: Expected execution at printf.c:331 -TEST 177: OK: Expected execution at printf.c:332 -TEST 178: OK: Expected execution at printf.c:333 +TEST 171: OK: Expected signal at printf.c:325 +TEST 172: OK: Expected execution at printf.c:327 +TEST 173: OK: Expected execution at printf.c:328 +TEST 174: OK: Expected execution at printf.c:329 +TEST 175: OK: Expected execution at printf.c:330 +TEST 176: OK: Expected execution at printf.c:337 +TEST 177: OK: Expected execution at printf.c:338 +TEST 178: OK: Expected execution at printf.c:339 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [L] to format specifier [d] -TEST 179: OK: Expected signal at printf.c:336 +TEST 179: OK: Expected signal at printf.c:342 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [L] to format specifier [i] -TEST 180: OK: Expected signal at printf.c:336 +TEST 180: OK: Expected signal at printf.c:342 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [L] to format specifier [o] -TEST 181: OK: Expected signal at printf.c:336 +TEST 181: OK: Expected signal at printf.c:342 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [L] to format specifier [u] -TEST 182: OK: Expected signal at printf.c:336 +TEST 182: OK: Expected signal at printf.c:342 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [L] to format specifier [x] -TEST 183: OK: Expected signal at printf.c:336 +TEST 183: OK: Expected signal at printf.c:342 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [L] to format specifier [c] -TEST 184: OK: Expected signal at printf.c:336 +TEST 184: OK: Expected signal at printf.c:342 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [L] to format specifier [s] -TEST 185: OK: Expected signal at printf.c:336 +TEST 185: OK: Expected signal at printf.c:342 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [L] to format specifier [p] -TEST 186: OK: Expected signal at printf.c:336 +TEST 186: OK: Expected signal at printf.c:342 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of length modifier [L] to format specifier [n] -TEST 187: OK: Expected signal at printf.c:336 -TEST 188: OK: Expected execution at printf.c:337 -TEST 189: OK: Expected execution at printf.c:338 -TEST 190: OK: Expected execution at printf.c:339 -TEST 191: OK: Expected execution at printf.c:340 -TEST 192: OK: Expected execution at printf.c:341 -TEST 193: OK: Expected execution at printf.c:342 -TEST 194: OK: Expected execution at printf.c:343 -TEST 195: OK: Expected execution at printf.c:344 +TEST 187: OK: Expected signal at printf.c:342 +TEST 188: OK: Expected execution at printf.c:343 +TEST 189: OK: Expected execution at printf.c:344 +TEST 190: OK: Expected execution at printf.c:345 +TEST 191: OK: Expected execution at printf.c:346 +TEST 192: OK: Expected execution at printf.c:347 +TEST 193: OK: Expected execution at printf.c:348 +TEST 194: OK: Expected execution at printf.c:349 +TEST 195: OK: Expected execution at printf.c:350 Format error: illegal format specifier 'C' -TEST 196: OK: Expected signal at printf.c:348 +TEST 196: OK: Expected signal at printf.c:354 Format error: illegal format specifier 'S' -TEST 197: OK: Expected signal at printf.c:349 +TEST 197: OK: Expected signal at printf.c:355 Format error: illegal format specifier 'm' -TEST 198: OK: Expected signal at printf.c:350 -TEST 199: OK: Expected execution at printf.c:353 -TEST 200: OK: Expected execution at printf.c:354 -TEST 201: OK: Expected execution at printf.c:355 -TEST 202: OK: Expected execution at printf.c:356 -TEST 203: OK: Expected execution at printf.c:357 -TEST 204: OK: Expected execution at printf.c:358 +TEST 198: OK: Expected signal at printf.c:356 +TEST 199: OK: Expected execution at printf.c:359 +TEST 200: OK: Expected execution at printf.c:360 +TEST 201: OK: Expected execution at printf.c:361 +TEST 202: OK: Expected execution at printf.c:362 +TEST 203: OK: Expected execution at printf.c:363 +TEST 204: OK: Expected execution at printf.c:364 printf: directive 1 ('%i') expects argument of type 'int' but the corresponding argument has type 'long' -TEST 205: OK: Expected signal at printf.c:359 +TEST 205: OK: Expected signal at printf.c:365 printf: directive 1 ('%d') expects argument of type 'int' but the corresponding argument has type 'long' -TEST 206: OK: Expected signal at printf.c:360 +TEST 206: OK: Expected signal at printf.c:366 printf: directive 1 ('%i') expects argument of type 'int' but the corresponding argument has type 'unsigned int' -TEST 207: OK: Expected signal at printf.c:361 +TEST 207: OK: Expected signal at printf.c:367 printf: directive 1 ('%d') expects argument of type 'int' but the corresponding argument has type 'unsigned int' -TEST 208: OK: Expected signal at printf.c:362 +TEST 208: OK: Expected signal at printf.c:368 printf: directive 1 ('%i') expects argument of type 'int' but the corresponding argument has type 'void*' -TEST 209: OK: Expected signal at printf.c:363 +TEST 209: OK: Expected signal at printf.c:369 printf: directive 1 ('%d') expects argument of type 'int' but the corresponding argument has type 'void*' -TEST 210: OK: Expected signal at printf.c:364 +TEST 210: OK: Expected signal at printf.c:370 printf: directive 1 ('%i') expects argument of type 'int' but the corresponding argument has type 'double' -TEST 211: OK: Expected signal at printf.c:365 +TEST 211: OK: Expected signal at printf.c:371 printf: directive 1 ('%d') expects argument of type 'int' but the corresponding argument has type 'double' -TEST 212: OK: Expected signal at printf.c:366 -TEST 213: OK: Expected execution at printf.c:369 -TEST 214: OK: Expected execution at printf.c:370 -TEST 215: OK: Expected execution at printf.c:371 -TEST 216: OK: Expected execution at printf.c:372 -TEST 217: OK: Expected execution at printf.c:373 -TEST 218: OK: Expected execution at printf.c:374 -TEST 219: OK: Expected execution at printf.c:375 -TEST 220: OK: Expected execution at printf.c:376 -TEST 221: OK: Expected execution at printf.c:378 -TEST 222: OK: Expected execution at printf.c:379 -TEST 223: OK: Expected execution at printf.c:384 -TEST 224: OK: Expected execution at printf.c:385 -TEST 225: OK: Expected execution at printf.c:388 -TEST 226: OK: Expected execution at printf.c:389 -TEST 227: OK: Expected execution at printf.c:390 -TEST 228: OK: Expected execution at printf.c:391 +TEST 212: OK: Expected signal at printf.c:372 +TEST 213: OK: Expected execution at printf.c:375 +TEST 214: OK: Expected execution at printf.c:376 +TEST 215: OK: Expected execution at printf.c:377 +TEST 216: OK: Expected execution at printf.c:378 +TEST 217: OK: Expected execution at printf.c:379 +TEST 218: OK: Expected execution at printf.c:380 +TEST 219: OK: Expected execution at printf.c:381 +TEST 220: OK: Expected execution at printf.c:382 +TEST 221: OK: Expected execution at printf.c:384 +TEST 222: OK: Expected execution at printf.c:385 +TEST 223: OK: Expected execution at printf.c:390 +TEST 224: OK: Expected execution at printf.c:391 +TEST 225: OK: Expected execution at printf.c:394 +TEST 226: OK: Expected execution at printf.c:395 +TEST 227: OK: Expected execution at printf.c:396 +TEST 228: OK: Expected execution at printf.c:397 printf: directive 1 ('%u') expects argument of type 'unsigned int' but the corresponding argument has type 'long' -TEST 229: OK: Expected signal at printf.c:392 +TEST 229: OK: Expected signal at printf.c:398 printf: directive 1 ('%o') expects argument of type 'unsigned int' but the corresponding argument has type 'long' -TEST 230: OK: Expected signal at printf.c:393 +TEST 230: OK: Expected signal at printf.c:399 printf: directive 1 ('%x') expects argument of type 'unsigned int' but the corresponding argument has type 'long' -TEST 231: OK: Expected signal at printf.c:394 +TEST 231: OK: Expected signal at printf.c:400 printf: directive 1 ('%X') expects argument of type 'unsigned int' but the corresponding argument has type 'long' -TEST 232: OK: Expected signal at printf.c:395 +TEST 232: OK: Expected signal at printf.c:401 printf: directive 1 ('%u') expects argument of type 'unsigned int' but the corresponding argument has type 'unsigned long' -TEST 233: OK: Expected signal at printf.c:396 +TEST 233: OK: Expected signal at printf.c:402 printf: directive 1 ('%o') expects argument of type 'unsigned int' but the corresponding argument has type 'unsigned long' -TEST 234: OK: Expected signal at printf.c:397 +TEST 234: OK: Expected signal at printf.c:403 printf: directive 1 ('%x') expects argument of type 'unsigned int' but the corresponding argument has type 'unsigned long' -TEST 235: OK: Expected signal at printf.c:398 +TEST 235: OK: Expected signal at printf.c:404 printf: directive 1 ('%X') expects argument of type 'unsigned int' but the corresponding argument has type 'unsigned long' -TEST 236: OK: Expected signal at printf.c:399 +TEST 236: OK: Expected signal at printf.c:405 printf: directive 1 ('%u') expects argument of type 'unsigned int' but the corresponding argument has type 'double' -TEST 237: OK: Expected signal at printf.c:400 +TEST 237: OK: Expected signal at printf.c:406 printf: directive 1 ('%o') expects argument of type 'unsigned int' but the corresponding argument has type 'double' -TEST 238: OK: Expected signal at printf.c:401 +TEST 238: OK: Expected signal at printf.c:407 printf: directive 1 ('%x') expects argument of type 'unsigned int' but the corresponding argument has type 'double' -TEST 239: OK: Expected signal at printf.c:402 +TEST 239: OK: Expected signal at printf.c:408 printf: directive 1 ('%X') expects argument of type 'unsigned int' but the corresponding argument has type 'double' -TEST 240: OK: Expected signal at printf.c:403 +TEST 240: OK: Expected signal at printf.c:409 printf: directive 1 ('%u') expects argument of type 'unsigned int' but the corresponding argument has type 'void*' -TEST 241: OK: Expected signal at printf.c:404 +TEST 241: OK: Expected signal at printf.c:410 printf: directive 1 ('%o') expects argument of type 'unsigned int' but the corresponding argument has type 'void*' -TEST 242: OK: Expected signal at printf.c:405 +TEST 242: OK: Expected signal at printf.c:411 printf: directive 1 ('%x') expects argument of type 'unsigned int' but the corresponding argument has type 'void*' -TEST 243: OK: Expected signal at printf.c:406 +TEST 243: OK: Expected signal at printf.c:412 printf: directive 1 ('%X') expects argument of type 'unsigned int' but the corresponding argument has type 'void*' -TEST 244: OK: Expected signal at printf.c:407 +TEST 244: OK: Expected signal at printf.c:413 printf: directive 1 ('%u') expects argument of type 'unsigned int' but the corresponding argument has type 'char*' -TEST 245: OK: Expected signal at printf.c:408 +TEST 245: OK: Expected signal at printf.c:414 printf: directive 1 ('%o') expects argument of type 'unsigned int' but the corresponding argument has type 'char*' -TEST 246: OK: Expected signal at printf.c:409 +TEST 246: OK: Expected signal at printf.c:415 printf: directive 1 ('%x') expects argument of type 'unsigned int' but the corresponding argument has type 'char*' -TEST 247: OK: Expected signal at printf.c:410 +TEST 247: OK: Expected signal at printf.c:416 printf: directive 1 ('%X') expects argument of type 'unsigned int' but the corresponding argument has type 'char*' -TEST 248: OK: Expected signal at printf.c:411 -TEST 249: OK: Expected execution at printf.c:414 -TEST 250: OK: Expected execution at printf.c:415 -TEST 251: OK: Expected execution at printf.c:416 -TEST 252: OK: Expected execution at printf.c:417 -TEST 253: OK: Expected execution at printf.c:418 -TEST 254: OK: Expected execution at printf.c:419 -TEST 255: OK: Expected execution at printf.c:420 -TEST 256: OK: Expected execution at printf.c:421 -TEST 257: OK: Expected execution at printf.c:423 -TEST 258: OK: Expected execution at printf.c:424 -TEST 259: OK: Expected execution at printf.c:425 -TEST 260: OK: Expected execution at printf.c:426 -TEST 261: OK: Expected execution at printf.c:428 -TEST 262: OK: Expected execution at printf.c:429 -TEST 263: OK: Expected execution at printf.c:430 -TEST 264: OK: Expected execution at printf.c:431 -TEST 265: OK: Expected execution at printf.c:432 -TEST 266: OK: Expected execution at printf.c:433 -TEST 267: OK: Expected execution at printf.c:434 -TEST 268: OK: Expected execution at printf.c:435 -TEST 269: OK: Expected execution at printf.c:436 -TEST 270: OK: Expected execution at printf.c:437 -TEST 271: OK: Expected execution at printf.c:438 -TEST 272: OK: Expected execution at printf.c:439 -TEST 273: OK: Expected execution at printf.c:441 -TEST 274: OK: Expected execution at printf.c:442 -TEST 275: OK: Expected execution at printf.c:443 -TEST 276: OK: Expected execution at printf.c:444 -TEST 277: OK: Expected execution at printf.c:448 -TEST 278: OK: Expected execution at printf.c:449 +TEST 248: OK: Expected signal at printf.c:417 +TEST 249: OK: Expected execution at printf.c:420 +TEST 250: OK: Expected execution at printf.c:421 +TEST 251: OK: Expected execution at printf.c:422 +TEST 252: OK: Expected execution at printf.c:423 +TEST 253: OK: Expected execution at printf.c:424 +TEST 254: OK: Expected execution at printf.c:425 +TEST 255: OK: Expected execution at printf.c:426 +TEST 256: OK: Expected execution at printf.c:427 +TEST 257: OK: Expected execution at printf.c:429 +TEST 258: OK: Expected execution at printf.c:430 +TEST 259: OK: Expected execution at printf.c:431 +TEST 260: OK: Expected execution at printf.c:432 +TEST 261: OK: Expected execution at printf.c:434 +TEST 262: OK: Expected execution at printf.c:435 +TEST 263: OK: Expected execution at printf.c:436 +TEST 264: OK: Expected execution at printf.c:437 +TEST 265: OK: Expected execution at printf.c:438 +TEST 266: OK: Expected execution at printf.c:439 +TEST 267: OK: Expected execution at printf.c:440 +TEST 268: OK: Expected execution at printf.c:441 +TEST 269: OK: Expected execution at printf.c:442 +TEST 270: OK: Expected execution at printf.c:443 +TEST 271: OK: Expected execution at printf.c:444 +TEST 272: OK: Expected execution at printf.c:445 +TEST 273: OK: Expected execution at printf.c:447 +TEST 274: OK: Expected execution at printf.c:448 +TEST 275: OK: Expected execution at printf.c:449 +TEST 276: OK: Expected execution at printf.c:450 +TEST 277: OK: Expected execution at printf.c:454 +TEST 278: OK: Expected execution at printf.c:455 printf: directive 1 ('%f') expects argument of type 'double' but the corresponding argument has type 'long double' -TEST 279: OK: Expected signal at printf.c:450 +TEST 279: OK: Expected signal at printf.c:456 printf: directive 1 ('%F') expects argument of type 'double' but the corresponding argument has type 'long double' -TEST 280: OK: Expected signal at printf.c:451 +TEST 280: OK: Expected signal at printf.c:457 printf: directive 1 ('%f') expects argument of type 'double' but the corresponding argument has type 'int' -TEST 281: OK: Expected signal at printf.c:452 +TEST 281: OK: Expected signal at printf.c:458 printf: directive 1 ('%F') expects argument of type 'double' but the corresponding argument has type 'int' -TEST 282: OK: Expected signal at printf.c:453 +TEST 282: OK: Expected signal at printf.c:459 printf: directive 1 ('%f') expects argument of type 'double' but the corresponding argument has type 'unsigned long' -TEST 283: OK: Expected signal at printf.c:454 +TEST 283: OK: Expected signal at printf.c:460 printf: directive 1 ('%F') expects argument of type 'double' but the corresponding argument has type 'unsigned long' -TEST 284: OK: Expected signal at printf.c:455 -TEST 285: OK: Expected execution at printf.c:456 -TEST 286: OK: Expected execution at printf.c:457 +TEST 284: OK: Expected signal at printf.c:461 +TEST 285: OK: Expected execution at printf.c:462 +TEST 286: OK: Expected execution at printf.c:463 printf: directive 1 ('%a') expects argument of type 'double' but the corresponding argument has type 'long double' -TEST 287: OK: Expected signal at printf.c:458 +TEST 287: OK: Expected signal at printf.c:464 printf: directive 1 ('%A') expects argument of type 'double' but the corresponding argument has type 'long double' -TEST 288: OK: Expected signal at printf.c:459 +TEST 288: OK: Expected signal at printf.c:465 printf: directive 1 ('%a') expects argument of type 'double' but the corresponding argument has type 'int' -TEST 289: OK: Expected signal at printf.c:460 +TEST 289: OK: Expected signal at printf.c:466 printf: directive 1 ('%A') expects argument of type 'double' but the corresponding argument has type 'int' -TEST 290: OK: Expected signal at printf.c:461 +TEST 290: OK: Expected signal at printf.c:467 printf: directive 1 ('%a') expects argument of type 'double' but the corresponding argument has type 'unsigned long' -TEST 291: OK: Expected signal at printf.c:462 +TEST 291: OK: Expected signal at printf.c:468 printf: directive 1 ('%A') expects argument of type 'double' but the corresponding argument has type 'unsigned long' -TEST 292: OK: Expected signal at printf.c:463 -TEST 293: OK: Expected execution at printf.c:464 -TEST 294: OK: Expected execution at printf.c:465 +TEST 292: OK: Expected signal at printf.c:469 +TEST 293: OK: Expected execution at printf.c:470 +TEST 294: OK: Expected execution at printf.c:471 printf: directive 1 ('%e') expects argument of type 'double' but the corresponding argument has type 'long double' -TEST 295: OK: Expected signal at printf.c:466 +TEST 295: OK: Expected signal at printf.c:472 printf: directive 1 ('%E') expects argument of type 'double' but the corresponding argument has type 'long double' -TEST 296: OK: Expected signal at printf.c:467 +TEST 296: OK: Expected signal at printf.c:473 printf: directive 1 ('%e') expects argument of type 'double' but the corresponding argument has type 'int' -TEST 297: OK: Expected signal at printf.c:468 +TEST 297: OK: Expected signal at printf.c:474 printf: directive 1 ('%E') expects argument of type 'double' but the corresponding argument has type 'int' -TEST 298: OK: Expected signal at printf.c:469 +TEST 298: OK: Expected signal at printf.c:475 printf: directive 1 ('%e') expects argument of type 'double' but the corresponding argument has type 'unsigned long' -TEST 299: OK: Expected signal at printf.c:470 +TEST 299: OK: Expected signal at printf.c:476 printf: directive 1 ('%E') expects argument of type 'double' but the corresponding argument has type 'unsigned long' -TEST 300: OK: Expected signal at printf.c:471 -TEST 301: OK: Expected execution at printf.c:472 -TEST 302: OK: Expected execution at printf.c:473 +TEST 300: OK: Expected signal at printf.c:477 +TEST 301: OK: Expected execution at printf.c:478 +TEST 302: OK: Expected execution at printf.c:479 printf: directive 1 ('%g') expects argument of type 'double' but the corresponding argument has type 'long double' -TEST 303: OK: Expected signal at printf.c:474 +TEST 303: OK: Expected signal at printf.c:480 printf: directive 1 ('%G') expects argument of type 'double' but the corresponding argument has type 'long double' -TEST 304: OK: Expected signal at printf.c:475 +TEST 304: OK: Expected signal at printf.c:481 printf: directive 1 ('%g') expects argument of type 'double' but the corresponding argument has type 'int' -TEST 305: OK: Expected signal at printf.c:476 +TEST 305: OK: Expected signal at printf.c:482 printf: directive 1 ('%G') expects argument of type 'double' but the corresponding argument has type 'int' -TEST 306: OK: Expected signal at printf.c:477 +TEST 306: OK: Expected signal at printf.c:483 printf: directive 1 ('%g') expects argument of type 'double' but the corresponding argument has type 'unsigned long' -TEST 307: OK: Expected signal at printf.c:478 +TEST 307: OK: Expected signal at printf.c:484 printf: directive 1 ('%G') expects argument of type 'double' but the corresponding argument has type 'unsigned long' -TEST 308: OK: Expected signal at printf.c:479 +TEST 308: OK: Expected signal at printf.c:485 printf: directive 1 ('%Lf') expects argument of type 'long double' but the corresponding argument has type 'double' -TEST 309: OK: Expected signal at printf.c:482 +TEST 309: OK: Expected signal at printf.c:488 printf: directive 1 ('%LF') expects argument of type 'long double' but the corresponding argument has type 'double' -TEST 310: OK: Expected signal at printf.c:483 -TEST 311: OK: Expected execution at printf.c:484 -TEST 312: OK: Expected execution at printf.c:485 +TEST 310: OK: Expected signal at printf.c:489 +TEST 311: OK: Expected execution at printf.c:490 +TEST 312: OK: Expected execution at printf.c:491 printf: directive 1 ('%Lf') expects argument of type 'long double' but the corresponding argument has type 'int' -TEST 313: OK: Expected signal at printf.c:486 +TEST 313: OK: Expected signal at printf.c:492 printf: directive 1 ('%LF') expects argument of type 'long double' but the corresponding argument has type 'int' -TEST 314: OK: Expected signal at printf.c:487 +TEST 314: OK: Expected signal at printf.c:493 printf: directive 1 ('%Lf') expects argument of type 'long double' but the corresponding argument has type 'unsigned long' -TEST 315: OK: Expected signal at printf.c:488 +TEST 315: OK: Expected signal at printf.c:494 printf: directive 1 ('%LF') expects argument of type 'long double' but the corresponding argument has type 'unsigned long' -TEST 316: OK: Expected signal at printf.c:489 +TEST 316: OK: Expected signal at printf.c:495 printf: directive 1 ('%La') expects argument of type 'long double' but the corresponding argument has type 'double' -TEST 317: OK: Expected signal at printf.c:490 +TEST 317: OK: Expected signal at printf.c:496 printf: directive 1 ('%LA') expects argument of type 'long double' but the corresponding argument has type 'double' -TEST 318: OK: Expected signal at printf.c:491 -TEST 319: OK: Expected execution at printf.c:492 -TEST 320: OK: Expected execution at printf.c:493 +TEST 318: OK: Expected signal at printf.c:497 +TEST 319: OK: Expected execution at printf.c:498 +TEST 320: OK: Expected execution at printf.c:499 printf: directive 1 ('%La') expects argument of type 'long double' but the corresponding argument has type 'int' -TEST 321: OK: Expected signal at printf.c:494 +TEST 321: OK: Expected signal at printf.c:500 printf: directive 1 ('%LA') expects argument of type 'long double' but the corresponding argument has type 'int' -TEST 322: OK: Expected signal at printf.c:495 +TEST 322: OK: Expected signal at printf.c:501 printf: directive 1 ('%La') expects argument of type 'long double' but the corresponding argument has type 'unsigned long' -TEST 323: OK: Expected signal at printf.c:496 +TEST 323: OK: Expected signal at printf.c:502 printf: directive 1 ('%LA') expects argument of type 'long double' but the corresponding argument has type 'unsigned long' -TEST 324: OK: Expected signal at printf.c:497 +TEST 324: OK: Expected signal at printf.c:503 printf: directive 1 ('%Le') expects argument of type 'long double' but the corresponding argument has type 'double' -TEST 325: OK: Expected signal at printf.c:498 +TEST 325: OK: Expected signal at printf.c:504 printf: directive 1 ('%LE') expects argument of type 'long double' but the corresponding argument has type 'double' -TEST 326: OK: Expected signal at printf.c:499 -TEST 327: OK: Expected execution at printf.c:500 -TEST 328: OK: Expected execution at printf.c:501 +TEST 326: OK: Expected signal at printf.c:505 +TEST 327: OK: Expected execution at printf.c:506 +TEST 328: OK: Expected execution at printf.c:507 printf: directive 1 ('%Le') expects argument of type 'long double' but the corresponding argument has type 'int' -TEST 329: OK: Expected signal at printf.c:502 +TEST 329: OK: Expected signal at printf.c:508 printf: directive 1 ('%LE') expects argument of type 'long double' but the corresponding argument has type 'int' -TEST 330: OK: Expected signal at printf.c:503 +TEST 330: OK: Expected signal at printf.c:509 printf: directive 1 ('%Le') expects argument of type 'long double' but the corresponding argument has type 'unsigned long' -TEST 331: OK: Expected signal at printf.c:504 +TEST 331: OK: Expected signal at printf.c:510 printf: directive 1 ('%LE') expects argument of type 'long double' but the corresponding argument has type 'unsigned long' -TEST 332: OK: Expected signal at printf.c:505 +TEST 332: OK: Expected signal at printf.c:511 printf: directive 1 ('%Lg') expects argument of type 'long double' but the corresponding argument has type 'double' -TEST 333: OK: Expected signal at printf.c:506 +TEST 333: OK: Expected signal at printf.c:512 printf: directive 1 ('%LG') expects argument of type 'long double' but the corresponding argument has type 'double' -TEST 334: OK: Expected signal at printf.c:507 -TEST 335: OK: Expected execution at printf.c:508 -TEST 336: OK: Expected execution at printf.c:509 +TEST 334: OK: Expected signal at printf.c:513 +TEST 335: OK: Expected execution at printf.c:514 +TEST 336: OK: Expected execution at printf.c:515 printf: directive 1 ('%Lg') expects argument of type 'long double' but the corresponding argument has type 'int' -TEST 337: OK: Expected signal at printf.c:510 +TEST 337: OK: Expected signal at printf.c:516 printf: directive 1 ('%LG') expects argument of type 'long double' but the corresponding argument has type 'int' -TEST 338: OK: Expected signal at printf.c:511 +TEST 338: OK: Expected signal at printf.c:517 printf: directive 1 ('%Lg') expects argument of type 'long double' but the corresponding argument has type 'unsigned long' -TEST 339: OK: Expected signal at printf.c:512 +TEST 339: OK: Expected signal at printf.c:518 printf: directive 1 ('%LG') expects argument of type 'long double' but the corresponding argument has type 'unsigned long' -TEST 340: OK: Expected signal at printf.c:513 -TEST 341: OK: Expected execution at printf.c:516 -TEST 342: OK: Expected execution at printf.c:517 -TEST 343: OK: Expected execution at printf.c:518 +TEST 340: OK: Expected signal at printf.c:519 +TEST 341: OK: Expected execution at printf.c:522 +TEST 342: OK: Expected execution at printf.c:523 +TEST 343: OK: Expected execution at printf.c:524 printf: directive 1 ('%c') expects argument of type 'int' but the corresponding argument has type 'unsigned int' -TEST 344: OK: Expected signal at printf.c:519 +TEST 344: OK: Expected signal at printf.c:525 printf: directive 1 ('%c') expects argument of type 'int' but the corresponding argument has type 'long' -TEST 345: OK: Expected signal at printf.c:520 +TEST 345: OK: Expected signal at printf.c:526 printf: directive 1 ('%c') expects argument of type 'int' but the corresponding argument has type 'double' -TEST 346: OK: Expected signal at printf.c:521 +TEST 346: OK: Expected signal at printf.c:527 printf: directive 1 ('%c') expects argument of type 'int' but the corresponding argument has type 'char*' -TEST 347: OK: Expected signal at printf.c:522 -TEST 348: OK: Expected execution at printf.c:525 +TEST 347: OK: Expected signal at printf.c:528 +TEST 348: OK: Expected execution at printf.c:531 printf: directive 1 ('%lc') expects argument of type 'unsigned int' but the corresponding argument has type 'long' -TEST 349: OK: Expected signal at printf.c:526 -TEST 350: OK: Expected execution at printf.c:533 -TEST 351: OK: Expected execution at printf.c:534 +TEST 349: OK: Expected signal at printf.c:532 +TEST 350: OK: Expected execution at printf.c:539 +TEST 351: OK: Expected execution at printf.c:540 printf: directive 1 ('%s') expects argument of type 'char*' but the corresponding argument has type 'int' -TEST 352: OK: Expected signal at printf.c:535 +TEST 352: OK: Expected signal at printf.c:541 printf: directive 1 ('%s') expects argument of type 'char*' but the corresponding argument has type 'void*' -TEST 353: OK: Expected signal at printf.c:536 +TEST 353: OK: Expected signal at printf.c:542 printf: attempt to access unallocated memory via directive 1 ('%s') -TEST 354: OK: Expected signal at printf.c:541 +TEST 354: OK: Expected signal at printf.c:547 printf: attempt to access unallocated memory via directive 1 ('%s') -TEST 355: OK: Expected signal at printf.c:542 -TEST 356: OK: Expected execution at printf.c:545 +TEST 355: OK: Expected signal at printf.c:548 +TEST 356: OK: Expected execution at printf.c:551 printf: unterminated string in directive 1 ('%s') -TEST 357: OK: Expected signal at printf.c:547 -TEST 358: OK: Expected execution at printf.c:550 -TEST 359: OK: Expected execution at printf.c:551 -TEST 360: OK: Expected execution at printf.c:552 -TEST 361: OK: Expected execution at printf.c:553 +TEST 357: OK: Expected signal at printf.c:553 +TEST 358: OK: Expected execution at printf.c:556 +TEST 359: OK: Expected execution at printf.c:557 +TEST 360: OK: Expected execution at printf.c:558 +TEST 361: OK: Expected execution at printf.c:559 printf: attempt to access partially unallocated memory via directive 1 ('%.5s') -TEST 362: OK: Expected signal at printf.c:554 -TEST 363: OK: Expected execution at printf.c:579 +TEST 362: OK: Expected signal at printf.c:560 +TEST 363: OK: Expected execution at printf.c:585 printf: directive 1 ('%p') expects argument of type 'void*' but the corresponding argument has type 'char*' -TEST 364: OK: Expected signal at printf.c:580 +TEST 364: OK: Expected signal at printf.c:586 printf: argument 1 of directive %p not allocated -TEST 365: OK: Expected signal at printf.c:581 -TEST 366: OK: Expected execution at printf.c:584 +TEST 365: OK: Expected signal at printf.c:587 +TEST 366: OK: Expected execution at printf.c:590 printf: directive 1 ('%n') expects argument of type 'int*' but the corresponding argument has type 'unsigned int*' -TEST 367: OK: Expected signal at printf.c:585 +TEST 367: OK: Expected signal at printf.c:591 printf: directive 1 ('%n') expects argument of type 'int*' but the corresponding argument has type 'void*' -TEST 368: OK: Expected signal at printf.c:586 +TEST 368: OK: Expected signal at printf.c:592 printf: argument 0 of directive %n not allocated or writeable -TEST 369: OK: Expected signal at printf.c:587 +TEST 369: OK: Expected signal at printf.c:593 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag ['] to format specifier [n] -TEST 370: OK: Expected signal at printf.c:590 +TEST 370: OK: Expected signal at printf.c:596 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [0] to format specifier [n] -TEST 371: OK: Expected signal at printf.c:591 +TEST 371: OK: Expected signal at printf.c:597 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of flag [#] to format specifier [n] -TEST 372: OK: Expected signal at printf.c:592 +TEST 372: OK: Expected signal at printf.c:598 Format error: one of more flags with [n] specifier -TEST 373: OK: Expected signal at printf.c:593 +TEST 373: OK: Expected signal at printf.c:599 Format error: one of more flags with [n] specifier -TEST 374: OK: Expected signal at printf.c:594 +TEST 374: OK: Expected signal at printf.c:600 Format error: one of more flags with [n] specifier -TEST 375: OK: Expected signal at printf.c:595 +TEST 375: OK: Expected signal at printf.c:601 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of precision [.] to format specifier [n] -TEST 376: OK: Expected signal at printf.c:596 +TEST 376: OK: Expected signal at printf.c:602 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of precision [.] to format specifier [n] -TEST 377: OK: Expected signal at printf.c:597 +TEST 377: OK: Expected signal at printf.c:603 FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:563: Format error: wrong application of precision [.] to format specifier [n] -TEST 378: OK: Expected signal at printf.c:598 +TEST 378: OK: Expected signal at printf.c:604 Format error: field width used with [n] specifier -TEST 379: OK: Expected signal at printf.c:599 +TEST 379: OK: Expected signal at printf.c:605 Format error: in directive '%d - %'% - %u times '.the complete conversion specification for '%' is '%%' -TEST 380: OK: Expected signal at printf.c:602 +TEST 380: OK: Expected signal at printf.c:608 diff --git a/src/plugins/e-acsl/tests/format/printf.c b/src/plugins/e-acsl/tests/format/printf.c index c1ddba8d5eabf8e0a8db97d538cef13a6ba71859..a70af11be0159a5a338a4f1990f37d513d48481e 100644 --- a/src/plugins/e-acsl/tests/format/printf.c +++ b/src/plugins/e-acsl/tests/format/printf.c @@ -1,9 +1,15 @@ /* run.config COMMENT: Check detection of format-string vulnerabilities via printf + DEPS: @PTEST_DEPS@ utils/signalled.h STDOPT: +"-eva-precision=1" */ /* run.config_dev MACRO: ROOT_EACSL_GCC_OPTS_EXT @ROOT_EACSL_GCC_OPTS_EXT@ -e "-Wno-maybe-uninitialized" + COMMENT: This part is blank on purpose (test stability + Dune) + + + + */ #include "utils/signalled.h" diff --git a/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c index 1de231b4f1471ffc04034ec6f26b0309a1df7bf1..66d855007366323a688fa98bc9ab0610ed601cb3 100644 --- a/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c +++ b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c @@ -1,5 +1,5 @@ /* run.config_dev - MACRO: ROOT_EACSL_GCC_OPTS_EXT --assert-print-data --external-print-value @PTEST_DIR@/e-acsl-external-print-value-fct.c + MACRO: ROOT_EACSL_GCC_OPTS_EXT --assert-print-data --external-print-value %{dep:@PTEST_DIR@/e-acsl-external-print-value-fct.c} */ int main() { diff --git a/src/plugins/from/callwise.ml b/src/plugins/from/callwise.ml index 3c7d13ec481e04eaccd7de8149e7bbeeaf616699..0538e56b092f8ab3c20d58f1d2d0d317cc6492d5 100644 --- a/src/plugins/from/callwise.ml +++ b/src/plugins/from/callwise.ml @@ -158,13 +158,9 @@ let record_for_individual_froms (call_stack, value_res) = | Value_types.NormalStore ((states, _after_states), _) -> let cur_kf, _ = List.hd call_stack in let froms = - try - if !Db.Value.no_results (Kernel_function.get_definition cur_kf) - then - Function_Froms.top - else - compute_call_from_value_states cur_kf (Lazy.force states) - with Kernel_function.No_Definition -> Function_Froms.top + if Eva.Analysis.save_results cur_kf + then compute_call_from_value_states cur_kf (Lazy.force states) + else Function_Froms.top in let pre_state = match !call_froms_stack with | [] -> assert false diff --git a/src/plugins/from/from_compute.ml b/src/plugins/from/from_compute.ml index 17afc0cb0009c8dd7452ed1ee8f6940e60b21f00..9a53f5d988a5505a7a857d8bc1061685a8f38f6c 100644 --- a/src/plugins/from/from_compute.ml +++ b/src/plugins/from/from_compute.ml @@ -604,7 +604,7 @@ struct match kf.fundec with | Declaration _ -> assert false | Definition (f,_) -> - if !Db.Value.no_results f then Function_Froms.top + if not (Eva.Analysis.save_results kf) then Function_Froms.top else try Stack.iter @@ -689,7 +689,7 @@ struct !s); Db.yield (); let result = - if !Db.Value.use_spec_instead_of_definition kf + if Eva.Analysis.use_spec_instead_of_definition kf then compute_using_prototype kf else compute_using_cfg kf in diff --git a/src/plugins/from/from_register.ml b/src/plugins/from/from_register.ml index d807740cf802b11d785e27cf7522d8cf673567f9..61a61f23ed3bab0bf24cd21deaad33401ef4743c 100644 --- a/src/plugins/from/from_register.ml +++ b/src/plugins/from/from_register.ml @@ -98,7 +98,7 @@ let print_calldeps () = let treat_call s funtype = let caller = Kernel_function.find_englobing_kf s in let f, typ_f = - if !Db.Value.no_results (Kernel_function.get_definition caller) + if not (Eva.Analysis.save_results caller) then "<unknown>", funtype else match Eva.Results.callee s with diff --git a/src/plugins/inout/cumulative_analysis.ml b/src/plugins/inout/cumulative_analysis.ml index 5fd0ef62e515072e44dde831fba0e2cfb0723517..5381137ce69085bf124554bfc4163c28d2f5b422 100644 --- a/src/plugins/inout/cumulative_analysis.ml +++ b/src/plugins/inout/cumulative_analysis.ml @@ -155,7 +155,7 @@ struct r_glob method compute_kf kf = - if !Db.Value.use_spec_instead_of_definition kf then + if Eva.Analysis.use_spec_instead_of_definition kf then (* If only a declaration is available, or we are instructed to use the spec, do so. If a current stmt is available (most of the times), do not cache the results. Maybe [compute_funspec] will be able diff --git a/src/plugins/inout/operational_inputs.ml b/src/plugins/inout/operational_inputs.ml index e8b14ef8fe536ca7469bddd1e8c1162ed7a8eb74..216604ca8dfdda61b9313d38391e8949340c88a3 100644 --- a/src/plugins/inout/operational_inputs.ml +++ b/src/plugins/inout/operational_inputs.ml @@ -512,7 +512,7 @@ let get_internal_aux ?stmt kf = | Some stmt -> try CallwiseResults.find (kf, Kstmt stmt) with Not_found -> - if !Db.Value.use_spec_instead_of_definition kf then + if Eva.Analysis.use_spec_instead_of_definition kf then compute_using_prototype ~stmt kf else !Db.Operational_inputs.get_internal kf @@ -524,7 +524,7 @@ let get_external_aux ?stmt kf = let internals = CallwiseResults.find (kf, Kstmt stmt) in externalize ~with_formals:false kf internals with Not_found -> - if !Db.Value.use_spec_instead_of_definition kf then + if Eva.Analysis.use_spec_instead_of_definition kf then let r = compute_externals_using_prototype ~stmt kf in CallwiseResults.add (kf, Kstmt stmt) r; r @@ -702,12 +702,9 @@ module Callwise = struct | Value_types.NormalStore ((states, _after_states), _) -> let kf, _ = List.hd call_stack in let inout = - try - if !Db.Value.no_results (Kernel_function.get_definition kf) then - top - else - compute_call_from_value_states kf call_stack (Lazy.force states) - with Kernel_function.No_Definition -> top + if Eva.Analysis.save_results kf + then compute_call_from_value_states kf call_stack (Lazy.force states) + else top in (match value_res with | Value_types.NormalStore (_, memexec_counter) -> @@ -778,7 +775,7 @@ module FunctionWise = struct }*) let compute_internal_using_cfg kf = - if !Db.Value.no_results (Kernel_function.get_definition kf) then + if not (Eva.Analysis.save_results kf) then top else begin Inout_parameters.feedback ~level:2 "computing for function %a%s" @@ -805,7 +802,7 @@ let get_internal = to Eva.Analysis.compute *) with | Not_found -> - if!Db.Value.use_spec_instead_of_definition kf then + if Eva.Analysis.use_spec_instead_of_definition kf then compute_using_prototype kf else FunctionWise.compute_internal_using_cfg kf diff --git a/src/plugins/instantiate/Makefile.in b/src/plugins/instantiate/Makefile.in index 5658325fc33460de75c7ad25981c3f778e63818d..1243f1bb6bedf316c9d36d046e21dee5c5c7a2df 100644 --- a/src/plugins/instantiate/Makefile.in +++ b/src/plugins/instantiate/Makefile.in @@ -66,6 +66,14 @@ PLUGIN_DISTRIBUTED := $(PLUGIN_ENABLE) PLUGIN_DISTRIB_EXTERNAL:= Makefile.in configure.ac configure #PLUGIN_NO_DEFAULT_TEST := no PLUGIN_TESTS_DIRS := string stdlib options api plugin +PLUGIN_DISTRIB_TESTS := \ + $(foreach dir, $(addprefix tests/,$(PLUGIN_TESTS_DIRS)), \ + $(dir)/oracle/* \ + $(filter-out result oracle,$(dir)/*)) \ + ) \ + $(filter-out result oracle,tests/*)) \ + $(foreach dir, tests $(addprefix tests/,$(PLUGIN_TESTS_DIRS)), \ + $(dir)/test_config) ################ # Generic part # diff --git a/src/plugins/instantiate/tests/options/test_config b/src/plugins/instantiate/tests/options/test_config index 01d3ae76752389c86266658217efba589a7e71e0..b5a180b54364b476c60b7ec846eb330e5b84d2ff 100644 --- a/src/plugins/instantiate/tests/options/test_config +++ b/src/plugins/instantiate/tests/options/test_config @@ -1 +1 @@ -OPT: @PTEST_FILE@ -instantiate -print \ No newline at end of file +OPT: @PTEST_FILE@ -instantiate -print diff --git a/src/plugins/instantiate/tests/plugin/ast_clear.c b/src/plugins/instantiate/tests/plugin/ast_clear.c index d3dfbb6ad2a2fb83924f23cba30589f680d415e9..7efc3990bd099a9f2d634f975e82efe66e589c10 100644 --- a/src/plugins/instantiate/tests/plugin/ast_clear.c +++ b/src/plugins/instantiate/tests/plugin/ast_clear.c @@ -6,4 +6,4 @@ int foo(char* s1, char* s2, size_t len){ return memcmp(s1, s2, len) ; -} \ No newline at end of file +} diff --git a/src/plugins/instantiate/tests/plugin/function_pointers.i b/src/plugins/instantiate/tests/plugin/function_pointers.i index 8f27dd1ab187cf20f3fd5572383a80d7e5be4dd9..b40b49be87beb6cc3670325f2f3047cfda6e986a 100644 --- a/src/plugins/instantiate/tests/plugin/function_pointers.i +++ b/src/plugins/instantiate/tests/plugin/function_pointers.i @@ -3,4 +3,4 @@ */ void foo(void (* bar)()){ (*bar)(); -} \ No newline at end of file +} diff --git a/src/plugins/instantiate/tests/stdlib/calloc.c b/src/plugins/instantiate/tests/stdlib/calloc.c index d87508ad415bcf21b677949b5429c8b8b376fc97..6b100ff812eddc17145ebc067f7fa31b5c3faf80 100644 --- a/src/plugins/instantiate/tests/stdlib/calloc.c +++ b/src/plugins/instantiate/tests/stdlib/calloc.c @@ -23,4 +23,4 @@ int main(void){ struct Flex* f = calloc(1, sizeof(struct Flex) + 3 * sizeof(int)) ; void *v = calloc(10, sizeof(char)); struct incomplete* inc = calloc(10, 10); -} \ No newline at end of file +} diff --git a/src/plugins/instantiate/tests/stdlib/free.c b/src/plugins/instantiate/tests/stdlib/free.c index e61ed8864c1d2657e6dc1f65a0d047735b3a2d6b..f2786b05cb0fdfcdfa1dc295a4f5085080b3b4f8 100644 --- a/src/plugins/instantiate/tests/stdlib/free.c +++ b/src/plugins/instantiate/tests/stdlib/free.c @@ -14,4 +14,4 @@ void with_void(void * x){ } void with_incomplete(struct incomplete* t){ free(t); -} \ No newline at end of file +} diff --git a/src/plugins/instantiate/tests/stdlib/malloc.c b/src/plugins/instantiate/tests/stdlib/malloc.c index 00a07820a9ac4377c39826e16538d62e6f8c2322..70fab21bc4751ff7ac5920cfc4b044693f990f29 100644 --- a/src/plugins/instantiate/tests/stdlib/malloc.c +++ b/src/plugins/instantiate/tests/stdlib/malloc.c @@ -22,4 +22,4 @@ int main(void){ struct Flex* f = malloc(sizeof(struct Flex) + 3 * sizeof(int)) ; void *v = malloc(sizeof(char) * 10); struct incomplete* inc = malloc(10); -} \ No newline at end of file +} diff --git a/src/plugins/markdown-report/Makefile.in b/src/plugins/markdown-report/Makefile.in index d757a1afca069dc4dbe1cf245d5abaf76ff5651e..1319104e18fc93bb3628eb66df1c26e52f7754ac 100644 --- a/src/plugins/markdown-report/Makefile.in +++ b/src/plugins/markdown-report/Makefile.in @@ -43,6 +43,14 @@ PLUGIN_DISTRIB_EXTERNAL:=\ eva_info.ml eva_info.mli PLUGIN_DEPFLAGS:= $(PLUGIN_DIR)/eva_info.mli $(PLUGIN_DIR)/eva_info.ml PLUGIN_TESTS_DIRS:= md sarif +PLUGIN_DISTRIB_TESTS := \ + $(foreach dir, $(addprefix tests/,$(PLUGIN_TESTS_DIRS)), \ + $(dir)/oracle/* \ + $(filter-out result oracle,$(dir)/*)) \ + ) \ + $(filter-out result oracle,tests/*)) \ + $(foreach dir, tests $(addprefix tests/,$(PLUGIN_TESTS_DIRS)), \ + $(dir)/test_config) include $(FRAMAC_SHARE)/Makefile.dynamic diff --git a/src/plugins/markdown-report/md_gen.ml b/src/plugins/markdown-report/md_gen.ml index 7d306b15ece681ac9dd5e8ef70c4b38e3f1525aa..3179c4a4835c38dc24a66aaa6775bf209e75631b 100644 --- a/src/plugins/markdown-report/md_gen.ml +++ b/src/plugins/markdown-report/md_gen.ml @@ -615,7 +615,9 @@ let gen_report ~draft:is_draft () = else try Command.print_file (file:>string) - (fun fmt -> Markdown.pp_pandoc fmt doc) ; + (fun fmt -> + Markdown.pp_pandoc fmt doc; + Format.pp_print_newline fmt ()) ; Mdr_params.result "Report %a generated" Filepath.Normalized.pretty file with Sys_error s -> Mdr_params.warning diff --git a/src/plugins/markdown-report/sarif_gen.ml b/src/plugins/markdown-report/sarif_gen.ml index c6cfaa1e235d59deed95dc34bb0df1044c35c6f6..7378f6b6b85eaaf91cb59bc239328a692d3956a3 100644 --- a/src/plugins/markdown-report/sarif_gen.ml +++ b/src/plugins/markdown-report/sarif_gen.ml @@ -255,15 +255,7 @@ let gen_run remarks = (key, (dir :> string)) ) (Filepath.all_symbolic_dirs ()) in - (* TODO: we currently use Sys.getenv "PWD" instead of Sys.getcwd () - because OCaml has no function in its stdlib to resolve symbolic links - (e.g. realpath) for a given path. - 'getcwd' always resolves them, but if the user supplies a path with - symbolic links, this may cause issues. - Instead of forcing the user to always provide resolved paths, we - currently choose to never resolve them. - We only resort to getcwd() to avoid issues when PWD does not exist. *) - let pwd = try Sys.getenv "PWD" with Not_found -> Sys.getcwd () in + let pwd = Filepath.pwd () in let uriBases = ("PWD", pwd) :: symbolicDirs in let uriBasesJson = List.fold_left (fun acc (name, dir) -> @@ -291,7 +283,9 @@ let generate () = let file = Mdr_params.Output.get () in try Command.write_file (file:>string) - (fun out -> Yojson.Safe.pretty_to_channel ~std:true out json) ; + (fun out -> + Yojson.Safe.pretty_to_channel ~std:true out json; + output_char out '\n') ; Mdr_params.result "Report %a generated" Filepath.Normalized.pretty file with Sys_error s -> Mdr_params.abort "Unable to generate %a (%s)" diff --git a/src/plugins/markdown-report/tests/md/cwe126.remarks.md b/src/plugins/markdown-report/tests/md/cwe126.remarks.md index 9e40167cfed25932494165b9044ea105c4081d67..de91a5414ce1d727209f59aa1aa7c6d9def02342 100644 --- a/src/plugins/markdown-report/tests/md/cwe126.remarks.md +++ b/src/plugins/markdown-report/tests/md/cwe126.remarks.md @@ -128,4 +128,4 @@ any spurious alarm anywhere else. <!-- BEGIN_REMARK --> -<!-- END_REMARK --> \ No newline at end of file +<!-- END_REMARK --> diff --git a/src/plugins/markdown-report/tests/md/oracle/cwe126.0.md b/src/plugins/markdown-report/tests/md/oracle/cwe126.0.md index 7cf06c232a619ad0ae15cd66cea3a3f08c8f3763..0b7517ee5ebe307b81b66eecd564ec368fb67c21 100644 --- a/src/plugins/markdown-report/tests/md/oracle/cwe126.0.md +++ b/src/plugins/markdown-report/tests/md/oracle/cwe126.0.md @@ -102,4 +102,4 @@ assert mem_access: \valid_read(data + i); This alarm is real: Eva correctly identified the issue and did not report -any spurious alarm anywhere else. \ No newline at end of file +any spurious alarm anywhere else. diff --git a/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif b/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif index da06272b08fbcd4e20ad7b0874c0bb2871a2d4fd..acc869f1702094b879063c996189554198d4a3fc 100644 --- a/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif +++ b/src/plugins/markdown-report/tests/sarif/oracle/cwe125.sarif @@ -235,4 +235,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif index 9bdfc7fac24aa8f1787849f3c58530b524772f32..1d95d640cd6cef31fc2b3aa0cf91877a62ddd440 100644 --- a/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif +++ b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif @@ -26422,4 +26422,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif b/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif index 5f59008899a557fa248242e5703ca4eb249d0c5b..1cf990c6f9b24cb801a7bc7668b06a1a9d0d3f28 100644 --- a/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif +++ b/src/plugins/markdown-report/tests/sarif/oracle/with-libc.sarif @@ -9767,4 +9767,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/plugins/markdown-report/tests/sarif/oracle/without-libc.sarif b/src/plugins/markdown-report/tests/sarif/oracle/without-libc.sarif index de7a03fe0f5d5031aef2b1fee89d7dcb9f6f4ea3..e088d8a8609618ee3856cc516f437894746a0fe0 100644 --- a/src/plugins/markdown-report/tests/sarif/oracle/without-libc.sarif +++ b/src/plugins/markdown-report/tests/sarif/oracle/without-libc.sarif @@ -81,4 +81,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/plugins/nonterm/Makefile.in b/src/plugins/nonterm/Makefile.in index 70c5b92517bc9256d7866f05dc369ec9da26feed..a45d5b990a5a9f948f6ebd1db46811a427c8c344 100644 --- a/src/plugins/nonterm/Makefile.in +++ b/src/plugins/nonterm/Makefile.in @@ -42,6 +42,14 @@ PLUGIN_DISTRIB_EXTERNAL:= Makefile.in configure.ac configure PLUGIN_DEPENDENCIES:=Eva #PLUGIN_NO_DEFAULT_TEST:=no PLUGIN_TESTS_DIRS:=nonterm +PLUGIN_DISTRIB_TESTS := \ + $(foreach dir, $(addprefix tests/,$(PLUGIN_TESTS_DIRS)), \ + $(dir)/oracle/* \ + $(filter-out result oracle,$(dir)/*)) \ + ) \ + $(filter-out result oracle,tests/*)) \ + $(foreach dir, tests $(addprefix tests/,$(PLUGIN_TESTS_DIRS)), \ + $(dir)/test_config) ################ # Generic part # diff --git a/src/plugins/nonterm/nonterm_run.ml b/src/plugins/nonterm/nonterm_run.ml index ef4c4fe0442172ec0191686dec8f5ee6b592e5ed..6f8a6a82532f10bd0eb744e9189bf6b738960a28 100644 --- a/src/plugins/nonterm/nonterm_run.ml +++ b/src/plugins/nonterm/nonterm_run.ml @@ -197,30 +197,29 @@ end 1. SyntacticallyUnreachable is disabled (otherwise it already checks them); 2. No warnings were emitted for the function (otherwise it may be redundant). *) let check_unreachable_returns kf = - if Eva.Results.is_called kf then begin - try - let ret_stmt = Kernel_function.find_return kf in - if not (Eva.Results.is_reachable ret_stmt) then - warn_unreachable_statement ret_stmt - with - | Kernel_function.No_Statement -> (* should never happen *) - Self.error "function %a has no return statement, skipping" - Kernel_function.pretty kf; - end + try + let ret_stmt = Kernel_function.find_return kf in + if not (Eva.Results.is_reachable ret_stmt) then + warn_unreachable_statement ret_stmt + with + | Kernel_function.No_Statement -> (* should never happen *) + Self.error "function %a has no return statement, skipping" + Kernel_function.pretty kf (* Checks [kf] for unreachable statements (ignoring those in [to_ignore]) and emits warnings. [warned_kfs] indicates functions which already had warnings emitted, to minimize the amount of redundant ones. *) let check_unreachable_statements kf ~to_ignore ~dead_code ~warned_kfs = - if !Db.Value.use_spec_instead_of_definition kf then + match Eva.Analysis.status kf with + | Unreachable | Analyzed NoResults -> () + | SpecUsed | Builtin _ -> (* TODO: consider as non-terminating if spec has \terminates(false) or \ensures(false) *) Self.debug "not analyzing function %a@ \ (using specification instead of definition),@ \ considered as always terminating" Kernel_function.pretty kf - else - if Eva.Results.is_called kf then begin + | Analyzed _ -> try let vis = new unreachable_stmt_visitor kf to_ignore in ignore (Visitor.visitFramacKf (vis :> Visitor.frama_c_visitor) kf); @@ -236,30 +235,18 @@ let check_unreachable_statements kf ~to_ignore ~dead_code ~warned_kfs = with | Kernel_function.No_Statement -> (* should never happen *) Self.error "function %a has no return statement, skipping" - Kernel_function.pretty kf; - end + Kernel_function.pretty kf (* To avoid redundant warnings, calls to possibly non-terminating functions are ignored if: 1. the function is in the list of functions to be ignored; - 2. or the function has a body AND its specification is not being used - via -eva-use-spec. + 2. or Eva results are available for the function. In case 2, the call is ignored because non-terminating statements inside it will already be reported. *) let ignore_kf name = try let kf = Globals.Functions.find_by_name name in - let has_definition = - try ignore (Kernel_function.get_definition kf); true - with Kernel_function.No_Definition -> false - in - match Ignore.mem name, - !Db.Value.use_spec_instead_of_definition kf, - has_definition - with - | true, _, _ -> true - | false, false, true -> true - | _, _, _ -> false + Ignore.mem name || Eva.Results.are_available kf with Not_found -> false (* simple statement collector: accumulates a list of all diff --git a/src/plugins/nonterm/tests/nonterm/oracle/n5.res.oracle b/src/plugins/nonterm/tests/nonterm/oracle/n5.res.oracle index 46379ed00ac854e9956120efd17acd2f8156cabf..c46055dd4a58a205e31956206de4d70292a59bbd 100644 --- a/src/plugins/nonterm/tests/nonterm/oracle/n5.res.oracle +++ b/src/plugins/nonterm/tests/nonterm/oracle/n5.res.oracle @@ -4,18 +4,18 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization nondet ∈ [--..--] -[eva] computing for function may_not_terminate <- main. - Called from n5.i:21. [kernel] n5.i:21: Warning: No code nor implicit assigns clause for function may_not_terminate, generating default assigns from the prototype +[eva] computing for function may_not_terminate <- main. + Called from n5.i:21. [eva] using specification for function may_not_terminate [eva] Done for function may_not_terminate [eva] computing for function f <- main. Called from n5.i:22. -[eva] computing for function never_terminates <- f <- main. - Called from n5.i:12. [kernel] n5.i:12: Warning: No code nor implicit assigns clause for function never_terminates, generating default assigns from the prototype +[eva] computing for function never_terminates <- f <- main. + Called from n5.i:12. [eva] using specification for function never_terminates [eva] Done for function never_terminates [eva] Recording results for f diff --git a/src/plugins/pdg/build.ml b/src/plugins/pdg/build.ml index d0df6abb5b2ed376ab6186867a5170e3ee651e0f..256f3d9f9980db347853fa0fcef8ed3ab51deb27 100644 --- a/src/plugins/pdg/build.ml +++ b/src/plugins/pdg/build.ml @@ -84,7 +84,7 @@ type pdg_build = { (** create an empty build pdg for the function*) let create_pdg_build kf = let nb_stmts = - if !Db.Value.use_spec_instead_of_definition kf then 17 + if Eva.Analysis.use_spec_instead_of_definition kf then 17 else List.length (Kernel_function.get_definition kf).sallstmts in let index = FctIndex.create nb_stmts in @@ -946,13 +946,12 @@ exception Value_State_Top let compute_pdg_for_f kf = let pdg = create_pdg_build kf in let f_locals, f_stmts = - if !Db.Value.use_spec_instead_of_definition kf then [], [] - else + if Eva.Analysis.use_spec_instead_of_definition kf then [], [] + else if Eva.Analysis.save_results kf + then let f = Kernel_function.get_definition kf in - if !Db.Value.no_results f then - raise Value_State_Top - else - f.slocals, f.sbody.bstmts + f.slocals, f.sbody.bstmts + else raise Value_State_Top in let init_state = process_entry_point pdg f_stmts; diff --git a/src/plugins/pdg/ctrlDpds.ml b/src/plugins/pdg/ctrlDpds.ml index 124de06e6d73bf81ee4d5522aa251c506cf0f759..9a8b6f9693db0e781b72016b838a68a4e4313d58 100644 --- a/src/plugins/pdg/ctrlDpds.ml +++ b/src/plugins/pdg/ctrlDpds.ml @@ -135,7 +135,7 @@ end = struct let compute kf = Pdg_parameters.debug ~dkey "computing for function %s@." (Kernel_function.get_name kf); - if !Db.Value.use_spec_instead_of_definition kf then Stmt.Hashtbl.create 0 + if Eva.Analysis.use_spec_instead_of_definition kf then Stmt.Hashtbl.create 0 else let graph = Stmt.Hashtbl.create 17 in let f = Kernel_function.get_definition kf in let _ = process_block graph f.sbody in graph @@ -288,7 +288,7 @@ end = struct in let _ = add_postdom infos return (State.ToReturn (Stmt.Hptset.empty)) in let stmts = - if !Db.Value.use_spec_instead_of_definition kf then + if Eva.Analysis.use_spec_instead_of_definition kf then invalid_arg "[traces] cannot compute for a leaf function" else let f = Kernel_function.get_definition kf in f.sallstmts diff --git a/src/plugins/pdg/sets.ml b/src/plugins/pdg/sets.ml index 89b83596775910a2d19721723910ccdd42e323e1..275477477b083ab80dca3d0e8df4ae8a95a30e96 100644 --- a/src/plugins/pdg/sets.ml +++ b/src/plugins/pdg/sets.ml @@ -157,7 +157,7 @@ let find_location_nodes_at_end pdg loc = let find_location_nodes_at_begin pdg loc = let kf = PdgTypes.Pdg.get_kf pdg in let stmts = - if !Db.Value.use_spec_instead_of_definition kf then [] + if Eva.Analysis.use_spec_instead_of_definition kf then [] else let f = Kernel_function.get_definition kf in f.sbody.bstmts in let state = match stmts with diff --git a/src/plugins/report/tests/report/oracle/csv.res.oracle b/src/plugins/report/tests/report/oracle/csv.res.oracle index b476eeb4126e85ea99a46c608c380c756defad9b..5647ffdfd1d4c01f4910a6efcdfc05e2ae610bd3 100644 --- a/src/plugins/report/tests/report/oracle/csv.res.oracle +++ b/src/plugins/report/tests/report/oracle/csv.res.oracle @@ -10,10 +10,10 @@ [eva] Done for function main1 [eva] computing for function main2 <- main. Called from csv.c:55. -[eva] computing for function f <- main2 <- main. - Called from csv.c:21. [kernel] csv.c:21: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype +[eva] computing for function f <- main2 <- main. + Called from csv.c:21. [eva] using specification for function f [eva] Done for function f [eva] computing for function f <- main2 <- main. diff --git a/src/plugins/scope/datascope.ml b/src/plugins/scope/datascope.ml index 5346f20489d1e8ba65fc11e5233236ea4a5e9ac8..dce2cdd9512711ca3a9da433c35d8381edb2310c 100644 --- a/src/plugins/scope/datascope.ml +++ b/src/plugins/scope/datascope.ml @@ -584,10 +584,7 @@ class check_annot_visitor = object(self) Cil.SkipChildren method! vglob_aux g = match g with - | GFun (fdec, _loc) when - Eva.Results.is_called (Option.get self#current_kf) && - not (!Db.Value.no_results fdec) - -> + | GFun _ when Eva.Results.are_available (Option.get self#current_kf) -> Cil.DoChildren | _ -> Cil.SkipChildren diff --git a/src/plugins/scope/defs.ml b/src/plugins/scope/defs.ml index eb00bc5f799b60533281b3f6ff5e721ac5e84c1a..5011918f24e5533ee5c2c2a578eb6ec135e7aab0 100644 --- a/src/plugins/scope/defs.ml +++ b/src/plugins/scope/defs.ml @@ -199,7 +199,7 @@ let compute_with_def_type_zone kf stmt zone = | Instr (Call (_, { enode = Lval (Var vi, NoOffset)}, _, _) | Local_init (_, ConsInit(vi,_,_),_)) when let kf = Globals.Functions.get vi in - !Db.Value.use_spec_instead_of_definition kf + Eva.Analysis.use_spec_instead_of_definition kf -> (* defined through a call, but function has no body *) change s (true, false) diff --git a/src/plugins/security_slicing/components.ml b/src/plugins/security_slicing/components.ml index 132d4a01c783dbaa134b77210a4dfeaf6a4b276a..7786adf110e9fb15a44296b8944471e838fee245 100644 --- a/src/plugins/security_slicing/components.ml +++ b/src/plugins/security_slicing/components.ml @@ -371,7 +371,7 @@ module Component = struct match kind with | Forward _ -> Lazy.force lazy_l | Direct | Indirect_Backward -> - if !Db.Value.use_spec_instead_of_definition kf + if Eva.Analysis.use_spec_instead_of_definition kf then Lazy.force lazy_l else [] with Not_found -> diff --git a/src/plugins/slicing/slicingCmds.ml b/src/plugins/slicing/slicingCmds.ml index 2b4088fad63b39d273741101b68e797151128ff7..65c51a49d3de59b54b75d4d0fba00e3dc7794acc 100644 --- a/src/plugins/slicing/slicingCmds.ml +++ b/src/plugins/slicing/slicingCmds.ml @@ -383,7 +383,7 @@ let select_lval_rw set mark ~rd ~wr ~eval kf ki_opt= Globals.Functions.iter (fun kf -> if Eva.Results.is_called kf then - if not (!Db.Value.use_spec_instead_of_definition kf) + if not (Eva.Analysis.use_spec_instead_of_definition kf) then (* Called function with source code: just looks at its stmt *) Kinstr.iter_from_func (select_rw_from_stmt kf) kf else begin (* Called function without source code: looks at its effect *) diff --git a/src/plugins/slicing/slicingMacros.ml b/src/plugins/slicing/slicingMacros.ml index 6a762bdc15ca721092346b965b5a07e447af0e2a..d221c7299c34279593def3da2e49322dd59c3e88 100644 --- a/src/plugins/slicing/slicingMacros.ml +++ b/src/plugins/slicing/slicingMacros.ml @@ -71,7 +71,7 @@ let get_kf_fi kf = let fi_def, is_def = match kf.fundec with | Declaration _ -> None, false - | Definition _ when !Db.Value.use_spec_instead_of_definition kf -> + | Definition _ when Eva.Analysis.use_spec_instead_of_definition kf -> None, false | Definition (def, _) -> Some def, true in diff --git a/src/plugins/slicing/slicingTransform.ml b/src/plugins/slicing/slicingTransform.ml index da5c14f22b2a58f2bb6a5d3a09e37611a204211b..5d7b4d1c5282e14d1fcfe0777d92e5d020051606 100644 --- a/src/plugins/slicing/slicingTransform.ml +++ b/src/plugins/slicing/slicingTransform.ml @@ -50,7 +50,7 @@ module Visibility (SliceName : sig let keep_body kf = Kernel_function.is_definition kf && - not (!Db.Value.use_spec_instead_of_definition kf) + not (Eva.Analysis.use_spec_instead_of_definition kf) (* _project is left to comply with a module signature defined outside the slicing module (in filter) *) diff --git a/src/plugins/studia/reads.ml b/src/plugins/studia/reads.ml index 4f4e3f4f4c421ccb25cd4fc259cb8e88dc00f326..70b8beda6ebf30a5d145f29294c14f5ae6cc17b2 100644 --- a/src/plugins/studia/reads.ml +++ b/src/plugins/studia/reads.ml @@ -58,7 +58,7 @@ class find_read zlval = object let inout = !Db.Operational_inputs.get_internal_precise ~stmt kf in let inputs = inout.Inout_type.over_inputs in *) if Zone.intersects inputs zlval then - if !Db.Value.use_spec_instead_of_definition kf then + if Eva.Analysis.use_spec_instead_of_definition kf then (* Direst, as there is no body for this funtion. *) { effects with direct = true } else diff --git a/src/plugins/studia/writes.ml b/src/plugins/studia/writes.ml index 81cb42d3637910aa03a4dd653572c5e694af5763..53b8d1f3282911215b3e96b17ace52e12c515012 100644 --- a/src/plugins/studia/writes.ml +++ b/src/plugins/studia/writes.ml @@ -39,7 +39,7 @@ let effects_of_call stmt zlval effects = let inout = !Db.Operational_inputs.get_internal_precise ~stmt kf in let out = inout.Inout_type.over_outputs in if Zone.intersects out zlval then - if !Db.Value.use_spec_instead_of_definition kf then + if Eva.Analysis.use_spec_instead_of_definition kf then { effects with direct = true } (* Mark the effect as direct, there is no body for this funtion. *) else diff --git a/src/plugins/value/Eva.ml.in b/src/plugins/value/Eva.ml.in index 612736cbcd23a842af3f327902f5cfd41b14059a..9931040bf9c5e1673271d57bac9d1f99a26c09d9 100644 --- a/src/plugins/value/Eva.ml.in +++ b/src/plugins/value/Eva.ml.in @@ -34,7 +34,8 @@ module Private = struct module Red_statuses = Eva__Red_statuses module Abstract_value = Eva__Abstract_value module Abstract_domain = Eva__Abstract_domain - module Mark_noresults = Eva__Mark_noresults + module Active_behaviors = Active_behaviors + module Function_calls = Function_calls module Simple_memory = Eva__Simple_memory module Structure = Eva__Structure module Eval_typ = Eva__Eval_typ diff --git a/src/plugins/value/Eva.mli.in b/src/plugins/value/Eva.mli.in index 5c256dbae1ffe869c51b24447fb970da9f81b813..836f6e7afef456a79115a3991ba7781b1e8baf0e 100644 --- a/src/plugins/value/Eva.mli.in +++ b/src/plugins/value/Eva.mli.in @@ -39,7 +39,8 @@ module Private: sig module Red_statuses = Red_statuses module Abstract_value = Abstract_value module Abstract_domain = Abstract_domain - module Mark_noresults = Mark_noresults + module Active_behaviors = Active_behaviors + module Function_calls = Function_calls module Simple_memory = Simple_memory module Structure = Structure module Eval_typ = Eval_typ diff --git a/src/plugins/value/api/general_requests.ml b/src/plugins/value/api/general_requests.ml index 4cbfd6f0af85695976d06833b4e2871f6110b76b..8053dcd4eee70529da2424b8b09cb8371a66745d 100644 --- a/src/plugins/value/api/general_requests.ml +++ b/src/plugins/value/api/general_requests.ml @@ -57,17 +57,12 @@ let _computation_signal = ~add_hook:Analysis.register_computation_hook () -let is_computed kf = - Analysis.is_computed () && - match kf with - | { fundec = Definition (fundec, _) } -> - Mark_noresults.should_memorize_function fundec - | { fundec = Declaration _ } -> false +let is_computed kf = Analysis.is_computed () && Results.are_available kf module CallSite = Data.Jpair (Kernel_ast.Kf) (Kernel_ast.Stmt) let callers kf = - let list = Eva_results.callers kf in + let list = Results.callsites kf in List.concat (List.map (fun (kf, l) -> List.map (fun s -> kf, s) l) list) let () = Request.register ~package diff --git a/src/plugins/value/domains/apron/apron_domain.ml b/src/plugins/value/domains/apron/apron_domain.ml index 6ef329f821be7f14259f19480f3e72264681257f..6653a648949f87fbf5840645d9efe55608bc109e 100644 --- a/src/plugins/value/domains/apron/apron_domain.ml +++ b/src/plugins/value/domains/apron/apron_domain.ml @@ -291,7 +291,7 @@ let rec constraint_expr eval oracle env expr positive = let typ = translate_typ (Cil.unrollType typ) in let e = Texpr1.Binop (Texpr1.Sub, e1'', e2'', typ, round) in let expr = Texpr1.of_expr env e in - let binop = Eva.Private.Eva_utils.conv_comp binop in + let binop = Eva_utils.conv_comp binop in let binop = if positive then binop else Abstract_interp.Comp.inv binop in translate_relation expr typ binop | _ -> raise (Out_of_Scope "constraint_expr not handled") diff --git a/src/plugins/value/domains/cvalue/cvalue_specification.ml b/src/plugins/value/domains/cvalue/cvalue_specification.ml index 4336ecdaf401a9f1eca74ec30d9b86e2c376df5c..aebbdbd39bcbf3bd9e84a94dc30a53652b3deaf3 100644 --- a/src/plugins/value/domains/cvalue/cvalue_specification.ml +++ b/src/plugins/value/domains/cvalue/cvalue_specification.ml @@ -22,8 +22,6 @@ open Cil_types -module AB = Transfer_logic.ActiveBehaviors - (* Eval: under-approximation of the term. Note that ACSL states that assigns clauses are evaluated in the pre-state. We skip [\result]: it is meaningless when evaluating the 'assigns' part, @@ -114,7 +112,7 @@ let check_fct_assigns kf ab ~pre_state found_froms = let link zones = List.fold_left Zone.link Zone.bottom zones in let outputs = Function_Froms.outputs found_froms in let check_for_behavior b = - let activity = AB.is_active ab b in + let activity = Active_behaviors.is_active ab b in match activity with | False -> () | True | Unknown -> @@ -187,7 +185,7 @@ let verify_assigns_from kf ~pre froms = | Eval_terms.False -> Alarmset.False | Eval_terms.Unknown -> Alarmset.Unknown in - let ab = AB.create eval_predicate funspec in + let ab = Active_behaviors.create eval_predicate funspec in check_fct_assigns kf ab ~pre_state:pre froms;; Db.Value.verify_assigns_froms := verify_assigns_from;; diff --git a/src/plugins/value/dune b/src/plugins/value/dune index a50ec626d084519eedcadb6034d17db096f59d97..2be344b810c90e2e9fc886b20c8741f4b55be3b9 100644 --- a/src/plugins/value/dune +++ b/src/plugins/value/dune @@ -24,6 +24,7 @@ abstract_location abstract_value abstractions + active_behaviors alarmset analysis auto_loop_unroll @@ -66,6 +67,7 @@ eval_typ evaluation function_args + function_calls gauges_domain general_requests hcexprs @@ -77,7 +79,6 @@ location_lift main_locations main_values - mark_noresults mem_exec multidim_domain octagons diff --git a/src/plugins/value/engine/analysis.ml b/src/plugins/value/engine/analysis.ml index ca4771584258e22ee4118a368c3cbd5e4366acf8..11e429d42db8d613075e2221437624747db08395 100644 --- a/src/plugins/value/engine/analysis.ml +++ b/src/plugins/value/engine/analysis.ml @@ -28,19 +28,36 @@ type computation_state = Self.computation_state = let current_computation_state = Self.current_computation_state let register_computation_hook = Self.register_computation_hook let is_computed = Self.is_computed +let self = Self.state + +type results = Function_calls.results = Complete | Partial | NoResults +type status = Function_calls.analysis_status = + Unreachable | SpecUsed | Builtin of string | Analyzed of results +let status kf = + match Function_calls.analysis_status kf with + | Analyzed Complete as status -> + if is_computed () then status else Analyzed Partial + | status -> status + +let use_spec_instead_of_definition = + Function_calls.use_spec_instead_of_definition ?recursion_depth:None + +let save_results kf = + try Function_calls.save_results (Kernel_function.get_definition kf) + with Kernel_function.No_Definition -> false module type Results = sig type state type value type location - val get_global_state: unit -> state or_bottom - val get_stmt_state : after:bool -> stmt -> state or_bottom + val get_global_state: unit -> state or_top_bottom + val get_stmt_state : after:bool -> stmt -> state or_top_bottom val get_stmt_state_by_callstack: ?selection:callstack list -> after:bool -> stmt -> state Value_types.Callstack.Hashtbl.t or_top_bottom val get_initial_state: - kernel_function -> state or_bottom + kernel_function -> state or_top_bottom val get_initial_state_by_callstack: ?selection:callstack list -> kernel_function -> state Value_types.Callstack.Hashtbl.t or_top_bottom @@ -78,22 +95,38 @@ module Make (Abstract: Abstractions.S) = struct include Abstract include Compute_functions.Make (Abstract) + let find stmt f = + if is_computed () + then + let kf = Kernel_function.find_englobing_kf stmt in + match status kf with + | Unreachable | SpecUsed | Builtin _ -> `Bottom + | Analyzed NoResults -> `Top + | Analyzed (Complete | Partial) -> f stmt + else `Top + let get_stmt_state ~after stmt = - let fundec = Kernel_function.(get_definition (find_englobing_kf stmt)) in - if Mark_noresults.should_memorize_function fundec && is_computed () - then Abstract.Dom.Store.get_stmt_state ~after stmt - else `Value Abstract.Dom.top + find stmt (Dom.Store.get_stmt_state ~after :> stmt -> Dom.t or_top_bottom) - let get_global_state = Abstract.Dom.Store.get_global_state + let get_stmt_state_by_callstack ?selection ~after stmt = + find stmt (Abstract.Dom.Store.get_stmt_state_by_callstack ?selection ~after) - let get_stmt_state_by_callstack = - Abstract.Dom.Store.get_stmt_state_by_callstack + let get_global_state () = + (Abstract.Dom.Store.get_global_state () :> Dom.t or_top_bottom) - let get_initial_state = - Abstract.Dom.Store.get_initial_state + let get_initial_state kf = + if is_computed () then + if Function_calls.is_called kf + then (Abstract.Dom.Store.get_initial_state kf :> Dom.t or_top_bottom) + else `Bottom + else `Top - let get_initial_state_by_callstack = - Abstract.Dom.Store.get_initial_state_by_callstack + let get_initial_state_by_callstack ?selection kf = + if is_computed () then + if Function_calls.is_called kf + then Abstract.Dom.Store.get_initial_state_by_callstack ?selection kf + else `Bottom + else `Top let eval_expr state expr = Eval.evaluate state expr >>=: snd @@ -201,5 +234,3 @@ let () = Project.register_after_set_current_hook ~user_only:true (fun _ -> reset_analyzer ()); Project.register_after_global_load_hook reset_analyzer - -let self = Self.state diff --git a/src/plugins/value/engine/analysis.mli b/src/plugins/value/engine/analysis.mli index 510972db9184b41e85601f6ef1c11cb2f390482c..789e483758683ceca1214b554257bd43c1f5d25e 100644 --- a/src/plugins/value/engine/analysis.mli +++ b/src/plugins/value/engine/analysis.mli @@ -28,13 +28,13 @@ module type Results = sig type value type location - val get_global_state: unit -> state or_bottom - val get_stmt_state : after:bool -> stmt -> state or_bottom + val get_global_state: unit -> state or_top_bottom + val get_stmt_state : after:bool -> stmt -> state or_top_bottom val get_stmt_state_by_callstack: ?selection:callstack list -> after:bool -> stmt -> state Value_types.Callstack.Hashtbl.t or_top_bottom val get_initial_state: - kernel_function -> state or_bottom + kernel_function -> state or_top_bottom val get_initial_state_by_callstack: ?selection:callstack list -> kernel_function -> state Value_types.Callstack.Hashtbl.t or_top_bottom @@ -106,6 +106,49 @@ val is_computed : unit -> bool val self : State.t (** Internal state of Eva analysis from projects viewpoint. *) + +(** Kind of results for the analysis of a function body. *) +type results = + | Complete + (** The results are complete: they cover all possible call contexts of the + given function. *) + | Partial + (** The results are partial, as the functions has not been analyzed in all + possible call contexts. This happens for recursive functions that are + not completely unrolled, or if the analysis has stopped unexpectedly. *) + | NoResults + (** No results were saved for the function, due to option -eva-no-results. + Any request at a statement of this function will lead to a Top result. *) + +(* Analysis status of a function. *) +type status = + | Unreachable + (** The function has not been reached by the analysis. Any request in this + function will lead to a Bottom result. *) + | SpecUsed + (** The function specification has been used to interpret its calls: + its body has not been analyzed. Any request at a statement of this + function will lead to a Bottom result. *) + | Builtin of string + (** The builtin of the given name has been used to interpret the function: + its body has not been analyzed. Any request at a statement of this + function will lead to a Bottom result. *) + | Analyzed of results + (** The function body has been analyzed. *) + +(** Returns the analysis status of a given function. *) +val status: Cil_types.kernel_function -> status + +(** Does the analysis ignores the body of a given function, and uses instead + its specification or a builtin to interpret it? + Please use {!Eva.Results.are_available} instead to known whether results + are available for a given function. *) +val use_spec_instead_of_definition: Cil_types.kernel_function -> bool + +(** Returns [true] if the user has requested that no results should be recorded + for the given function. Please use {!Eva.Results.are_available} instead + to known whether results are available for a given function. *) +val save_results: Cil_types.kernel_function -> bool [@@@ api_end] val cvalue_initial_state: unit -> Cvalue.Model.t diff --git a/src/plugins/value/engine/compute_functions.ml b/src/plugins/value/engine/compute_functions.ml index 32ebe6a24ae98bb0848f11475bbd4ea4f2ba3bd0..7dfc10b2fe83127fa48e17a7c1650a5fed144172 100644 --- a/src/plugins/value/engine/compute_functions.ml +++ b/src/plugins/value/engine/compute_functions.ml @@ -165,111 +165,97 @@ module Make (Abstract: Abstractions.Eva) = struct | None -> fun _ -> assert false | Some get -> fun location -> get location - (* Compute a call to [kf] in the state [state]. The evaluation will - be done either using the body of [kf] or its specification, depending - on whether the body exists and on option [-eva-use-spec]. [call_kinstr] - is the instruction at which the call takes place, and is used to update - the statuses of the preconditions of [kf]. If [show_progress] is true, - the callstack and additional information are printed. *) - let compute_using_spec_or_body call_kinstr call recursion state = - let kf = call.kf in - Eva_results.mark_kf_as_called kf; - let global = match call_kinstr with Kglobal -> true | _ -> false in + (* ----- Mem Exec cache --------------------------------------------------- *) + + module MemExec = Mem_exec.Make (Abstract.Val) (Abstract.Dom) + + let compute_and_cache_call compute kinstr call init_state = + let args = + List.map (fun {avalue} -> Eval.value_assigned avalue) call.arguments + in + match MemExec.reuse_previous_call call.kf init_state args with + | None -> + let call_result = compute kinstr call init_state in + let () = + if call_result.Transfer.cacheable = Eval.Cacheable + then + let final_states = call_result.Transfer.states in + MemExec.store_computed_call call.kf init_state args final_states + in + call_result + | Some (states, i) -> + let stack = Eva_utils.call_stack () in + let cvalue = Abstract.Dom.get_cvalue_or_top init_state in + Db.Value.Call_Type_Value_Callbacks.apply (`Memexec, cvalue, stack); + (* Evaluate the preconditions of kf, to update the statuses + at this call. *) + let spec = Annotations.funspec call.kf in + if not (Eva_utils.skip_specifications call.kf) && + Eval_annots.has_requires spec + then begin + let ab = Logic.create init_state call.kf in + ignore (Logic.check_fct_preconditions kinstr call.kf ab init_state); + end; + if Parameters.ValShowProgress.get () then begin + Self.feedback ~current:true + "Reusing old results for call to %a" Kernel_function.pretty call.kf; + Self.debug ~dkey + "calling Record_Value_New callbacks on saved previous result"; + end; + Db.Value.Record_Value_Callbacks_New.apply (stack, Value_types.Reuse i); + (* call can be cached since it was cached once *) + Transfer.{states; cacheable = Cacheable; builtin=false} + + (* ----- Body or specification analysis ----------------------------------- *) + + (* Interprets a [call] at callsite [kinstr] in the state [state] by analyzing + the body of the called function. *) + let compute_using_body fundec ~save_results kinstr call state = + let result = Computer.compute ~save_results call.kf kinstr state in + Summary.FunctionStats.recompute fundec; + result + + (* Interprets a [call] at callsite [kinstr] in the state [state] by using the + specification of the called function. *) + let compute_using_spec spec kinstr call state = + if Parameters.InterpreterMode.get () + then Self.abort "Library function call. Stopping."; + Self.feedback ~once:true + "@[using specification for function %a@]" Kernel_function.pretty call.kf; + let vi = Kernel_function.get_vi call.kf in + if Cil.is_in_libc vi.vattr then + Library_functions.warn_unsupported_spec vi.vorig_name; + Spec.compute_using_specification ~warn:true kinstr call spec state, + Eval.Cacheable + + (* Interprets a [call] at callsite [kinstr] in state [state], using its + specification or body according to [target]. If [-eva-show-progress] is + true, the callstack and additional information are printed. *) + let compute_using_spec_or_body target kinstr call state = + let global = match kinstr with Kglobal -> true | _ -> false in let pp = not global && Parameters.ValShowProgress.get () in let call_stack = Eva_utils.call_stack () in if pp then Self.feedback "@[computing for function %a.@\nCalled from %a.@]" Value_types.Callstack.pretty_short call_stack - Cil_datatype.Location.pretty (Cil_datatype.Kinstr.loc call_kinstr); - let use_spec = - match recursion with - | Some { depth } when depth >= Parameters.RecursiveUnroll.get () -> - `Spec (Recursion.get_spec call_kinstr kf) - | _ -> - match kf.fundec with - | Declaration (_,_,_,_) -> `Spec (Annotations.funspec kf) - | Definition (def, _) -> - if Kernel_function.Set.mem kf (Parameters.UsePrototype.get ()) - then `Spec (Annotations.funspec kf) - else `Def def - in + Cil_datatype.Location.pretty (Cil_datatype.Kinstr.loc kinstr); let cvalue_state = Abstract.Dom.get_cvalue_or_top state in - let resulting_states, cacheable = match use_spec with - | `Spec spec -> - Db.Value.Call_Type_Value_Callbacks.apply - (`Spec spec, cvalue_state, call_stack); - if Parameters.InterpreterMode.get () - then Self.abort "Library function call. Stopping."; - Self.feedback ~once:true - "@[using specification for function %a@]" Kernel_function.pretty kf; - let vi = Kernel_function.get_vi kf in - if Cil.is_in_libc vi.vattr then - Library_functions.warn_unsupported_spec vi.vorig_name; - Spec.compute_using_specification ~warn:true call_kinstr call spec state, - Eval.Cacheable - | `Def fundec -> - Db.Value.Call_Type_Value_Callbacks.apply (`Def, cvalue_state, call_stack); - let result = Computer.compute kf call_kinstr state in - Summary.FunctionStats.recompute fundec; - result + let compute, kind = + match target with + | `Def (fundec, save_results) -> + compute_using_body fundec ~save_results, `Def + | `Spec funspec -> + compute_using_spec funspec, `Spec funspec in + Db.Value.Call_Type_Value_Callbacks.apply (kind, cvalue_state, call_stack); + let resulting_states, cacheable = compute kinstr call state in if pp then Self.feedback - "Done for function %a" Kernel_function.pretty kf; + "Done for function %a" Kernel_function.pretty call.kf; Transfer.{ states = resulting_states; cacheable; builtin=false } - - (* Mem Exec *) - - module MemExec = Mem_exec.Make (Abstract.Val) (Abstract.Dom) - - let compute_and_cache_call stmt call recursion init_state = - let default () = - compute_using_spec_or_body (Kstmt stmt) call recursion init_state - in - if Parameters.MemExecAll.get () then - let args = - List.map (fun {avalue} -> Eval.value_assigned avalue) call.arguments - in - match MemExec.reuse_previous_call call.kf init_state args with - | None -> - let call_result = default () in - let () = - if not (!Db.Value.use_spec_instead_of_definition call.kf) - && call_result.Transfer.cacheable = Eval.Cacheable - then - let final_states = call_result.Transfer.states in - MemExec.store_computed_call call.kf init_state args final_states - in - call_result - | Some (states, i) -> - let stack = Eva_utils.call_stack () in - let cvalue = Abstract.Dom.get_cvalue_or_top init_state in - Db.Value.Call_Type_Value_Callbacks.apply (`Memexec, cvalue, stack); - (* Evaluate the preconditions of kf, to update the statuses - at this call. *) - let spec = Annotations.funspec call.kf in - if not (Eva_utils.skip_specifications call.kf) && - Eval_annots.has_requires spec - then begin - let ab = Logic.create init_state call.kf in - ignore (Logic.check_fct_preconditions - (Kstmt stmt) call.kf ab init_state); - end; - if Parameters.ValShowProgress.get () then begin - Self.feedback ~current:true - "Reusing old results for call to %a" Kernel_function.pretty call.kf; - Self.debug ~dkey - "calling Record_Value_New callbacks on saved previous result"; - end; - let stack_with_call = Eva_utils.call_stack () in - Db.Value.Record_Value_Callbacks_New.apply - (stack_with_call, Value_types.Reuse i); - (* call can be cached since it was cached once *) - Transfer.{states; cacheable = Cacheable; builtin=false} - else - default () + (* ----- Use of cvalue builtins ------------------------------------------- *) let get_cvalue_call call = let lift_left left = { left with lloc = get_ploc left.lloc } in @@ -288,53 +274,73 @@ module Make (Abstract: Abstractions.Eva) = struct | (_k,s) :: l -> `Value (List.fold_left Abstract.Dom.join s (List.map snd l)) - let compute_call_or_builtin stmt call recursion state = - match Builtins.find_builtin_override call.kf with - | None -> compute_and_cache_call stmt call recursion state - | Some (name, builtin, cacheable, spec) -> - Eva_results.mark_kf_as_called call.kf; - let kinstr = Kstmt stmt in - let kf_name = Kernel_function.get_name call.kf in - if Parameters.ValShowProgress.get () - then - Self.feedback ~current:true "Call to builtin %s%s" - name (if kf_name = name then "" else " for function " ^ kf_name); - (* Do not track garbled mixes created when interpreting the specification, - as the result of the cvalue builtin will overwrite them. *) - Locations.Location_Bytes.do_track_garbled_mix false; - let states = - Spec.compute_using_specification ~warn:false kinstr call spec state + (* Interprets a call to [kf] at callsite [kinstr] in the state [state] + by using a cvalue builtin. *) + let compute_builtin (name, builtin, cacheable, spec) kinstr call state = + let kf_name = Kernel_function.get_name call.kf in + if Parameters.ValShowProgress.get () + then + Self.feedback ~current:true "Call to builtin %s%s" + name (if kf_name = name then "" else " for function " ^ kf_name); + (* Do not track garbled mixes created when interpreting the specification, + as the result of the cvalue builtin will overwrite them. *) + Locations.Location_Bytes.do_track_garbled_mix false; + let states = + Spec.compute_using_specification ~warn:false kinstr call spec state + in + Locations.Location_Bytes.do_track_garbled_mix true; + let final_state = join_states states in + let cvalue_state = Abstract.Dom.get_cvalue_or_top state in + match final_state with + | `Bottom -> + let cs = Eva_utils.call_stack () in + Db.Value.Call_Type_Value_Callbacks.apply (`Spec spec, cvalue_state, cs); + let cacheable = Eval.Cacheable in + Transfer.{states; cacheable; builtin=true} + | `Value final_state -> + let cvalue_call = get_cvalue_call call in + let post = Abstract.Dom.get_cvalue_or_top final_state in + let cvalue_states = + Builtins.apply_builtin builtin cvalue_call ~pre:cvalue_state ~post in - Locations.Location_Bytes.do_track_garbled_mix true; - let final_state = join_states states in - let cvalue_state = Abstract.Dom.get_cvalue_or_top state in - match final_state with - | `Bottom -> - let cs = Eva_utils.call_stack () in - Db.Value.Call_Type_Value_Callbacks.apply (`Spec spec, cvalue_state, cs); - let cacheable = Eval.Cacheable in - Transfer.{states; cacheable; builtin=true} - | `Value final_state -> - let cvalue_call = get_cvalue_call call in - let post = Abstract.Dom.get_cvalue_or_top final_state in - let cvalue_states = - Builtins.apply_builtin builtin cvalue_call ~pre:cvalue_state ~post - in - let insert cvalue_state = - Partition.Key.empty, - Abstract.Dom.set Cvalue_domain.State.key cvalue_state final_state - in - let states = List.map insert cvalue_states in - Transfer.{states; cacheable; builtin=true} - - let compute_call = + let insert cvalue_state = + Partition.Key.empty, + Abstract.Dom.set Cvalue_domain.State.key cvalue_state final_state + in + let states = List.map insert cvalue_states in + Transfer.{states; cacheable; builtin=true} + + (* Uses cvalue builtin only if the cvalue domain is available. Otherwise, only + use the called function specification. *) + let compute_builtin = if Abstract.Dom.mem Cvalue_domain.State.key && Abstract.Val.mem Main_values.CVal.key && Abstract.Loc.mem Main_locations.PLoc.key - then compute_call_or_builtin - else compute_and_cache_call + then compute_builtin + else fun (_, _, _, spec) -> compute_using_spec_or_body (`Spec spec) + + (* ----- Call computation ------------------------------------------------- *) + + (* Interprets a [call] at callsite [kinstr] in the state [state], + using a builtin, the specification or the body of the called function, + according to [Function_calls.register]. *) + let compute_call kinstr call recursion state = + let recursion_depth = Option.map (fun r -> r.depth) recursion in + let target = + Function_calls.define_analysis_target ?recursion_depth kinstr call.kf + in + match target with + | `Builtin builtin_info -> compute_builtin builtin_info kinstr call state + | `Spec _ as spec -> compute_using_spec_or_body spec kinstr call state + | `Def _ as def -> + let compute = compute_using_spec_or_body def in + if Parameters.MemExecAll.get () + then compute_and_cache_call compute kinstr call state + else compute kinstr call state - let () = Transfer.compute_call_ref := compute_call + let () = Transfer.compute_call_ref := (fun stmt -> compute_call (Kstmt stmt)) + + (* ----- Main call -------------------------------------------------------- *) let store_initial_state kf init_state = Abstract.Dom.Store.register_initial_state (Eva_utils.call_stack ()) init_state; @@ -349,9 +355,7 @@ module Make (Abstract: Abstractions.Eva) = struct let call = { kf; callstack = []; arguments = []; rest = []; return = None; } in - let final_result = - compute_using_spec_or_body Kglobal call None init_state - in + let final_result = compute_call Kglobal call None init_state in let final_states = List.map snd (final_result.Transfer.states) in let final_state = PowersetDomain.(final_states |> of_list |> join) in Eva_utils.pop_call_stack (); diff --git a/src/plugins/value/engine/evaluation.ml b/src/plugins/value/engine/evaluation.ml index aaef33f5418aaa61710b7e891c1916d054a622cb..10974ea5bb1026d3f8f8089856549ec0eaf13ca4 100644 --- a/src/plugins/value/engine/evaluation.ml +++ b/src/plugins/value/engine/evaluation.ml @@ -1623,7 +1623,7 @@ module Make Self.abort ~current:true "Calls through function pointers are not supported without the cvalue \ domain."; - if Mark_noresults.no_memoization_enabled () then + if Function_calls.partial_results () then Self.abort ~current:true "Function pointer evaluates to anything. Try deactivating \ option(s) -eva-no-results and -eva-no-results-function." diff --git a/src/plugins/value/engine/function_calls.ml b/src/plugins/value/engine/function_calls.ml new file mode 100644 index 0000000000000000000000000000000000000000..5eaea0596b07af64a050ec4622a02e2e92d1e12b --- /dev/null +++ b/src/plugins/value/engine/function_calls.ml @@ -0,0 +1,195 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2022 *) +(* 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 +open Eval + +let save_results f = + Parameters.ResultsAll.get () && not (Parameters.NoResultsFunctions.mem f) + +let () = + Db.Value.no_results := + (fun fd -> not (save_results fd) || not (Parameters.Domains.mem "cvalue")) + +(* Signal that some results are not stored. The gui or some API calls + may fail ungracefully. *) +let partial_results () = + not (Parameters.ResultsAll.get ()) || + not (Parameters.NoResultsFunctions.is_empty ()) + + +let info name : (module State_builder.Info_with_size) = + (module struct + let name = "Eva.Function_calls." ^ name + let size = 17 + let dependencies = [ Self.state ] + end) + +module StmtSet = Cil_datatype.Stmt.Set +module Callers = Kernel_function.Map.Make (StmtSet) +module CallersTable = Kernel_function.Make_Table (Callers) (val info "Callers") + +let register_call kinstr kf = + match kinstr, Eva_utils.call_stack () with + | Kglobal, _ -> CallersTable.add kf Kernel_function.Map.empty + | Kstmt _, ([] | [_]) -> assert false + | Kstmt stmt, (kf', kinstr') :: (caller, _) :: _ -> + assert (Kernel_function.equal kf kf'); + assert (Cil_datatype.Kinstr.equal kinstr kinstr'); + let callsite = StmtSet.singleton stmt in + let change calls = + let prev_stmts = Kernel_function.Map.find_opt caller calls in + let new_stmts = + Option.fold ~none:callsite ~some:(StmtSet.union callsite) prev_stmts + in + Kernel_function.Map.add caller new_stmts calls + in + let add _kf = Kernel_function.Map.singleton caller callsite in + ignore (CallersTable.memo ~change add kf) + +let is_called = CallersTable.mem + +let callers kf = + try + let calls = Kernel_function.Map.bindings (CallersTable.find kf) in + List.map fst calls + with Not_found -> [] + +let callsites kf = + try + let calls = Kernel_function.Map.bindings (CallersTable.find kf) in + List.map (fun (kf, set) -> kf, StmtSet.elements set) calls + with Not_found -> [] + + +type analysis_target = + [ `Builtin of string * Builtins.builtin * cacheable * funspec + | `Spec of Cil_types.funspec + | `Def of Cil_types.fundec * bool ] + +type results = Complete | Partial | NoResults +type analysis_status = + Unreachable | SpecUsed | Builtin of string | Analyzed of results + +module Status = Datatype.Make ( + struct + include Datatype.Serializable_undefined + type t = analysis_status + let name = "Function_calls.Status" + let reprs = [ Unreachable ] + let structural_descr = Structural_descr.t_sum [| [| |] |] + let pretty fmt t = + let str = match t with + | Unreachable -> "Unreachable" + | SpecUsed -> "Spec" + | Builtin name -> "Builtin " ^ name + | Analyzed _ -> "Analyzed" + in + Format.fprintf fmt "%s" str + end) + +module StatusTable = Kernel_function.Make_Table (Status) (val info "StatusTable") + +(* All statuses bound to a given function should be identical, except for + recursive functions that may not be completely unrolled: the body is first + analyzed, and then the spec is used. This can also lead to partial and + complete analyses of the same function, depending on the success of the + unrolling for each call. *) +let merge_status s1 s2 = + match s1, s2 with + | Analyzed result, SpecUsed | SpecUsed, Analyzed result -> + Analyzed (if result = Complete then Partial else result) + | Analyzed Partial, Analyzed Complete | Analyzed Complete, Analyzed Partial -> + Analyzed Partial + | _, _ -> + assert (s1 = s2); + s1 + +let register_status kf kind = + let status = + match kind with + | `Builtin (name, _, _, _) -> Builtin name + | `Spec _ -> SpecUsed + | `Def (_, results) -> Analyzed (if results then Complete else NoResults) + in + let change prev_status = merge_status prev_status status in + ignore (StatusTable.memo ~change (fun _ -> status) kf) + +let analysis_status kf = + try StatusTable.find kf + with Not_found -> Unreachable + + +(* Must be consistent with the choice made by [analysis_target] below. *) +let use_spec_instead_of_definition ?(recursion_depth = -1) kf = + Ast_info.is_frama_c_builtin (Kernel_function.get_name kf) || + Builtins.is_builtin_overridden kf || + recursion_depth >= Parameters.RecursiveUnroll.get () || + not (Kernel_function.is_definition kf) || + Kernel_function.Set.mem kf (Parameters.UsePrototype.get ()) + +let analysis_target ~recursion_depth callsite kf = + match Builtins.find_builtin_override kf with + | Some (name, builtin, cache, spec) -> + `Builtin (name, builtin, cache, spec) + | None -> + if recursion_depth >= Parameters.RecursiveUnroll.get () + then `Spec (Recursion.get_spec callsite kf) + else + match kf.fundec with + | Declaration (_,_,_,_) -> `Spec (Annotations.funspec kf) + | Definition (def, _) -> + if Kernel_function.Set.mem kf (Parameters.UsePrototype.get ()) + then `Spec (Annotations.funspec kf) + else `Def (def, save_results def) + +let define_analysis_target ?(recursion_depth = -1) callsite kf = + let kind = analysis_target callsite kf ~recursion_depth in + register_call callsite kf; + register_status kf kind; + kind + + +type t = (analysis_status * Callers.t) Kernel_function.Map.t + +let get_results () = + StatusTable.fold_sorted + (fun kf status acc -> + let callers = CallersTable.find kf in + Kernel_function.Map.add kf (status, callers) acc) + Kernel_function.Map.empty + +let set_results = + let register kf (status, callers) = + StatusTable.replace kf status; + CallersTable.replace kf callers + in + Kernel_function.Map.iter register + +let merge_results = + let union _kf (status1, callers1) (status2, callers2) = + let union_stmt _kf s1 s2 = Some (StmtSet.union s1 s2) in + let callers = Kernel_function.Map.union union_stmt callers1 callers2 in + let status = merge_status status1 status2 in + Some (status, callers) + in + Kernel_function.Map.union union diff --git a/src/plugins/value/engine/function_calls.mli b/src/plugins/value/engine/function_calls.mli new file mode 100644 index 0000000000000000000000000000000000000000..332d9f518ab60b57420bb1b86f931c98c73897bb --- /dev/null +++ b/src/plugins/value/engine/function_calls.mli @@ -0,0 +1,77 @@ +(**************************************************************************) +(* *) +(* This file is part of Frama-C. *) +(* *) +(* Copyright (C) 2007-2022 *) +(* 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 + +(** True if the results should be saved for the given function. *) +val save_results: fundec -> bool + +(** True if some results are not stored due to options -eva-no-results + or -eva-no-results-function. *) +val partial_results: unit -> bool + +(** What is used for the analysis of a given function: + - a Cvalue builtin (and other domains use the specification) + - the function specification + - the function body. The boolean indicates whether the resulting states + must be recorded at each statement of this function. *) +type analysis_target = + [ `Builtin of string * Builtins.builtin * Eval.cacheable * funspec + | `Spec of Cil_types.funspec + | `Def of Cil_types.fundec * bool ] + +(** Define the analysis target of a function according to Eva parameters. + Also registers the call in tables for the functions below. *) +val define_analysis_target: + ?recursion_depth:int -> kinstr -> kernel_function -> analysis_target + +(** Returns true if the Eva analysis use the specification of the given + function instead of its body to interpret its calls. *) +val use_spec_instead_of_definition: + ?recursion_depth:int -> kernel_function -> bool + + +(** Returns true if the function has been analyzed. *) +val is_called: kernel_function -> bool + +(** Returns the list of inferred callers of the given function. *) +val callers : Cil_types.kernel_function -> Cil_types.kernel_function list + +(** Returns the list of inferred callers, and for each of them, the list + of callsites (the call statements) inside. *) +val callsites: kernel_function -> (kernel_function * stmt list) list + + +type results = Complete | Partial | NoResults +type analysis_status = + Unreachable | SpecUsed | Builtin of string | Analyzed of results + +(** Returns the current analysis status of a given function. *) +val analysis_status: kernel_function -> analysis_status + +(** The functions below are used by Eva_results.ml to save, merge and load + the results of multiple Eva analyses. *) + +type t +val get_results: unit -> t +val set_results: t -> unit +val merge_results: t -> t -> t diff --git a/src/plugins/value/engine/iterator.ml b/src/plugins/value/engine/iterator.ml index d9d50612ebb06d92a81cf5218fdffdb626428c9e..3be91801bcbca06a175e6401925edbe0caf4568e 100644 --- a/src/plugins/value/engine/iterator.ml +++ b/src/plugins/value/engine/iterator.ml @@ -667,7 +667,7 @@ module Make_Dataflow ); states_after - let merge_results () = + let merge_results ~save_results = let get_merged_states = let merged_states = VertexTable.create control_point_count and get_smashed_store v = @@ -700,7 +700,7 @@ module Make_Dataflow let merged_pre_cvalues = lazy (lift_to_cvalues merged_pre_states) and merged_post_cvalues = lazy (lift_to_cvalues merged_post_states) in let callstack = Eva_utils.call_stack () in - if Mark_noresults.should_memorize_function fundec then begin + if save_results then begin let register_pre = Domain.Store.register_state_before_stmt callstack and register_post = Domain.Store.register_state_after_stmt callstack in StmtTable.iter register_pre (Lazy.force merged_pre_states); @@ -762,7 +762,7 @@ module Computer end) = struct - let compute kf call_kinstr state = + let compute ~save_results kf call_kinstr state = let module Dataflow = Make_Dataflow (Abstract) (States) (Transfer) (Init) (Logic) (Spec) @@ -778,7 +778,7 @@ module Computer if Parameters.ValShowProgress.get () then Self.feedback "Recording results for %a" Kernel_function.pretty kf; - Dataflow.merge_results (); + Dataflow.merge_results ~save_results; let f = Kernel_function.get_definition kf in if Cil.hasAttribute "noreturn" f.svar.vattr && results <> [] then Eva_utils.warning_once_current @@ -788,7 +788,7 @@ module Computer in let cleanup () = Dataflow.mark_degeneration (); - Dataflow.merge_results () + Dataflow.merge_results ~save_results in Eva_utils.protect compute ~cleanup end diff --git a/src/plugins/value/engine/iterator.mli b/src/plugins/value/engine/iterator.mli index 81c8cc65844e581f7db400f9d885168b3b2d9af3..47ca49314a2ec62e4ac5d3f7044bb01307d4c4d1 100644 --- a/src/plugins/value/engine/iterator.mli +++ b/src/plugins/value/engine/iterator.mli @@ -44,6 +44,7 @@ module Computer : sig val compute: + save_results:bool -> kernel_function -> kinstr -> Abstract.Dom.t -> (Partition.key * Abstract.Dom.t) list * Eval.cacheable diff --git a/src/plugins/value/engine/transfer_logic.ml b/src/plugins/value/engine/transfer_logic.ml index 124437be116a36a44e19b63c3f447152329acabf..74a8d6d679985101272a63334dc9c6a1bb24a24e 100644 --- a/src/plugins/value/engine/transfer_logic.ml +++ b/src/plugins/value/engine/transfer_logic.ml @@ -54,7 +54,7 @@ let pp_p_kind fmt = function let post_kind kf = if Builtins.is_builtin_overridden kf then PostBuiltin - else if !Db.Value.use_spec_instead_of_definition kf then + else if Function_calls.use_spec_instead_of_definition kf then if Kernel_function.is_definition kf then PostUseSpec else PostLeaf @@ -141,68 +141,6 @@ let create_conjunction l= in Logic_const.(List.fold_right (fun p1 p2 -> pand ?loc (p1, p2)) (List.map pred_of_id_pred l) ptrue) -(* -------------------------- Active behaviors ------------------------------ *) - -module ActiveBehaviors = struct - - type t = { - funspec: funspec; - is_active: funbehavior -> Alarmset.status - } - - module HashBehaviors = Hashtbl.Make( - struct - type t = funbehavior - let equal b1 b2 = b1.b_name = b2.b_name - let hash b = Hashtbl.hash b.b_name - end) - - let is_active eval_predicate b = - let assumes = create_conjunction b.b_assumes in - eval_predicate assumes - - let create eval_predicate funspec = - let h = HashBehaviors.create 3 in - let is_active = fun b -> - try HashBehaviors.find h b - with Not_found -> - let active = is_active eval_predicate b in - HashBehaviors.add h b active; - active - in - { is_active; funspec } - - let is_active ab behavior = ab.is_active behavior - - let active_behaviors ab = - List.filter - (fun b -> is_active ab b != Alarmset.False) - ab.funspec.spec_behavior - - let is_active_from_name ab name = - try - let list = ab.funspec.spec_behavior in - let behavior = List.find (fun b' -> b'.b_name = name) list in - is_active ab behavior - (* This case happens for behaviors of statement contract, that are not - handled by this module. *) - with Not_found -> Alarmset.Unknown -end - -let () = - Db.Value.valid_behaviors := - (fun kf state -> - let funspec = Annotations.funspec kf in - let eval_predicate pred = - match Eval_terms.(eval_predicate (env_pre_f ~pre:state ()) pred) with - | Eval_terms.True -> Alarmset.True - | Eval_terms.False -> Alarmset.False - | Eval_terms.Unknown -> Alarmset.Unknown - in - let ab = ActiveBehaviors.create eval_predicate funspec in - ActiveBehaviors.active_behaviors ab - ) - let ip_from_precondition kf call_ki b pre = let ip_precondition = Property.ip_of_requires kf Kglobal b pre in match call_ki with @@ -269,22 +207,22 @@ module type S = sig type state type states - val create: state -> kernel_function -> ActiveBehaviors.t - val create_from_spec: state -> spec -> ActiveBehaviors.t + val create: state -> kernel_function -> Active_behaviors.t + val create_from_spec: state -> spec -> Active_behaviors.t val check_fct_preconditions_for_behaviors: kinstr -> kernel_function -> behavior list -> Alarmset.status -> states -> states val check_fct_preconditions: - kinstr -> kernel_function -> ActiveBehaviors.t -> state -> states or_bottom + kinstr -> kernel_function -> Active_behaviors.t -> state -> states or_bottom val check_fct_postconditions_for_behaviors: kernel_function -> behavior list -> Alarmset.status -> pre_state:state -> post_states:states -> result:varinfo option -> states val check_fct_postconditions: - kernel_function -> ActiveBehaviors.t -> termination_kind -> + kernel_function -> Active_behaviors.t -> termination_kind -> pre_state:state -> post_states:states -> result:varinfo option -> states or_bottom @@ -292,7 +230,7 @@ module type S = sig val interp_annot: limit:int -> record:bool -> - kernel_function -> ActiveBehaviors.t -> stmt -> code_annotation -> + kernel_function -> Active_behaviors.t -> stmt -> code_annotation -> initial_state:state -> states -> states end @@ -344,7 +282,7 @@ module Make let create_from_spec pre funspec = let eval_predicate = Domain.evaluate_predicate (pre_env ~pre) pre in - ActiveBehaviors.create eval_predicate funspec + Active_behaviors.create eval_predicate funspec let create init_state kf = let funspec = Annotations.funspec kf in @@ -421,7 +359,7 @@ module Make | Postcondition (PostLeaf | PostUseSpec) -> true | _ -> false) && pr.pred_content <> Pfalse then - Self.warning ~once:true ~source + Self.warning ~once:true ~source ~wkey:Self.wkey_ensures_false "@[%a:@ this postcondition@ evaluates to@ false@ in this@ context.\ @ If it is valid,@ either@ a precondition@ was not@ verified@ \ for this@ call%t,@ or some assigns/from@ clauses@ are \ @@ -537,7 +475,7 @@ module Make to help reduce the final state. *) let check_fct_postconditions kf ab kind ~pre_state ~post_states ~result = let behaviors = Annotations.behaviors kf in - let is_active = ActiveBehaviors.is_active ab in + let is_active = Active_behaviors.is_active ab in let states = check_fct_postconditions_of_behaviors kf behaviors is_active kind ~per_behavior:false @@ -583,7 +521,7 @@ module Make let check_fct_preconditions call_ki kf ab init_state = let init_states = States.singleton init_state in let behaviors = Annotations.behaviors kf in - let is_active = ActiveBehaviors.is_active ab in + let is_active = Active_behaviors.is_active ab in let states = check_fct_preconditions_of_behaviors call_ki kf ~per_behavior:false behaviors is_active init_states @@ -625,7 +563,7 @@ module Make | [] -> `True | behavs -> let aux acc b = - match ActiveBehaviors.is_active_from_name ab b with + match Active_behaviors.is_active_from_name ab b with | Alarmset.True -> `True | Alarmset.Unknown -> if acc = `True then `True else `Unknown | Alarmset.False -> acc diff --git a/src/plugins/value/engine/transfer_logic.mli b/src/plugins/value/engine/transfer_logic.mli index 2512aac64e2d9e1c6827bf4d3b30a52aa673d17d..e328d5a9c0beafe5728a12262fc3d251561e746d 100644 --- a/src/plugins/value/engine/transfer_logic.mli +++ b/src/plugins/value/engine/transfer_logic.mli @@ -23,13 +23,6 @@ open Cil_types open Eval -module ActiveBehaviors : sig - type t - val is_active: t -> behavior -> Alarmset.status - val active_behaviors: t -> behavior list - val create: (predicate -> Alarmset.status) -> spec -> t -end - (* Marks all behaviors of the list as inactive. *) val process_inactive_behaviors: kinstr -> kernel_function -> behavior list -> unit @@ -38,22 +31,22 @@ module type S = sig type state type states - val create: state -> kernel_function -> ActiveBehaviors.t - val create_from_spec: state -> spec -> ActiveBehaviors.t + val create: state -> kernel_function -> Active_behaviors.t + val create_from_spec: state -> spec -> Active_behaviors.t val check_fct_preconditions_for_behaviors: kinstr -> kernel_function -> behavior list -> Alarmset.status -> states -> states val check_fct_preconditions: - kinstr -> kernel_function -> ActiveBehaviors.t -> state -> states or_bottom + kinstr -> kernel_function -> Active_behaviors.t -> state -> states or_bottom val check_fct_postconditions_for_behaviors: kernel_function -> behavior list -> Alarmset.status -> pre_state:state -> post_states:states -> result:varinfo option -> states val check_fct_postconditions: - kernel_function -> ActiveBehaviors.t -> termination_kind -> + kernel_function -> Active_behaviors.t -> termination_kind -> pre_state:state -> post_states:states -> result:varinfo option -> states or_bottom @@ -61,7 +54,7 @@ module type S = sig val interp_annot: limit:int -> record:bool -> - kernel_function -> ActiveBehaviors.t -> stmt -> code_annotation -> + kernel_function -> Active_behaviors.t -> stmt -> code_annotation -> initial_state:state -> states -> states end diff --git a/src/plugins/value/engine/transfer_stmt.ml b/src/plugins/value/engine/transfer_stmt.ml index 8e3c04f6d31f20deb9bbaf4aa09966db3482974d..303e69ee16dde632435d82c0f774c42a3d3b122a 100644 --- a/src/plugins/value/engine/transfer_stmt.ml +++ b/src/plugins/value/engine/transfer_stmt.ml @@ -85,7 +85,7 @@ let do_copy_at = function on functions whose body is analyzed. *) let is_determinate kf = let name = Kernel_function.get_name kf in - (warn_indeterminate kf || !Db.Value.use_spec_instead_of_definition kf) + (warn_indeterminate kf || Function_calls.use_spec_instead_of_definition kf) && not (Ast_info.is_frama_c_builtin name) let subdivide_stmt = Eva_utils.get_subdivision @@ -748,7 +748,6 @@ module Make (Abstract: Abstractions.Eva) = struct let cacheable = ref Cacheable in let eval = let+ functions = functions in - let current_kf = Eva_utils.current_kf () in let process_one_function kf valuation = (* The special Frama_C_ functions to print states are handled here. *) if apply_special_directives ~subdivnb kf args state @@ -761,8 +760,6 @@ module Make (Abstract: Abstractions.Eva) = struct Alarmset.emit ki_call alarms; let states = let+ call, recursion, valuation = eval in - (* Register the call. *) - Eva_results.add_kf_caller call.kf ~caller:(current_kf, stmt); (* Do the call. *) let c, states = do_one_call valuation stmt lval_option call recursion state diff --git a/src/plugins/value/gui_files/gui_eval.ml b/src/plugins/value/gui_files/gui_eval.ml index c212bc4d9166d46a1361a6a74e135940f113c5f6..9264bfb55403509312c971ee1ea1b614d1381777 100644 --- a/src/plugins/value/gui_files/gui_eval.ml +++ b/src/plugins/value/gui_files/gui_eval.ml @@ -24,12 +24,8 @@ open Cil_types open Gui_types open Lattice_bounds -let results_kf_computed kf = - Eva.Analysis.is_computed () && - match kf with - | { fundec = Definition (fundec, _) } -> - Mark_noresults.should_memorize_function fundec - | { fundec = Declaration _ } -> true (* This value is not really used *) +let results_kf_computed kf = Analysis.is_computed () && Results.are_available kf +let kf_called kf = Analysis.is_computed () && Results.is_called kf let term_c_type t = Logic_const.plain_or_set @@ -343,7 +339,7 @@ module Make (X: Analysis.S) = struct let pre = pre_kf kf callstack in let post = X.Dom.get_cvalue_or_top post in let result = - if !Db.Value.use_spec_instead_of_definition kf then + if Function_calls.use_spec_instead_of_definition kf then None else let ret_stmt = Kernel_function.find_return kf in @@ -386,7 +382,7 @@ module Make (X: Analysis.S) = struct and correspond to the states before reduction by any precondition. After states are not available. *) let callstacks_at_pre kf = - if results_kf_computed kf then + if kf_called kf then let states_before = X.get_initial_state_by_callstack kf in { states_before; states_after = `Top } else top_states_by_callstacks @@ -395,7 +391,8 @@ module Make (X: Analysis.S) = struct normal termination, and only when the function is called. After states are not available. *) let callstacks_at_post kf = - if not (!Db.Value.use_spec_instead_of_definition kf) && results_kf_computed kf + if not (Function_calls.use_spec_instead_of_definition kf) + && results_kf_computed kf then let ret = Kernel_function.find_return kf in let states_before = X.get_stmt_state_by_callstack ~after:true ret in diff --git a/src/plugins/value/gui_files/register_gui.ml b/src/plugins/value/gui_files/register_gui.ml index fda18017f390f47ab0a3da7bd9929391f795de2a..31d005daf3e195dac525dbafe363ac52e7ba978c 100644 --- a/src/plugins/value/gui_files/register_gui.ml +++ b/src/plugins/value/gui_files/register_gui.ml @@ -43,7 +43,7 @@ module UsedVarState = let used_var = UsedVarState.memo (fun var -> - Mark_noresults.no_memoization_enabled () || + Function_calls.partial_results () || try let f = fst (Globals.entry_point ()) in let inputs = !Db.Inputs.get_external f in @@ -172,7 +172,7 @@ let active_highlighter buffer localizable ~start ~stop = | Some color_area -> apply_tag buffer color_area start stop | None -> - if Gui_eval.results_kf_computed kf then begin + if Analysis.status kf <> Analyzed NoResults then begin let csf = Gui_callstacks_filters.focused_callstacks () in if Gui_callstacks_filters.is_reachable_stmt csf stmt then begin if Gui_callstacks_filters.is_non_terminating_instr csf stmt then @@ -528,7 +528,7 @@ module Select (Eval: Eval) = struct | Kstmt stmt -> Eval.Analysis.get_stmt_state ~after:false stmt in match state with - | `Bottom -> () + | `Bottom | `Top -> () | `Value state -> let funs, _ = Eval.Analysis.eval_function_exp state e in match funs with diff --git a/src/plugins/value/legacy/eval_annots.ml b/src/plugins/value/legacy/eval_annots.ml index 8c83557fd2a766d1dde996152ae20a256e009ece..4bf4155529115dd9930da1dc8a5f579a32f3e1c4 100644 --- a/src/plugins/value/legacy/eval_annots.ml +++ b/src/plugins/value/legacy/eval_annots.ml @@ -109,7 +109,7 @@ let mark_unreachable () = Visitor.visitFramacFileFunctions unreach (Ast.get ()) let c_labels kf cs = - if !Db.Value.use_spec_instead_of_definition kf then + if Function_calls.use_spec_instead_of_definition kf then Cil_datatype.Logic_label.Map.empty else let fdec = Kernel_function.get_definition kf in diff --git a/src/plugins/value/register.ml b/src/plugins/value/register.ml index c57f8f46daae27c684ebb342d69dd314407365f0..e48168230e40b04321390fa52dde2dbc0b2e9907 100644 --- a/src/plugins/value/register.ml +++ b/src/plugins/value/register.ml @@ -124,14 +124,6 @@ let find_deps_term_no_transitivity_state state t = r.Eval_terms.ldeps with Eval_terms.LogicEvalError _ -> raise Db.From.Not_lval -(* If the function is a builtin, or if the user has requested it, use - \assigns and \from clauses, that give an approximation of the result *) -let use_spec_instead_of_definition kf = - not (Kernel_function.is_definition kf) || - Ast_info.is_frama_c_builtin (Kernel_function.get_name kf) || - Builtins.is_builtin_overridden kf || - Kernel_function.Set.mem kf (Parameters.UsePrototype.get ()) - let eval_predicate ~pre ~here p = let open Eval_terms in let env = env_annot ~pre ~here () in @@ -140,9 +132,22 @@ let eval_predicate ~pre ~here p = | False -> Property_status.False_if_reachable | Unknown -> Property_status.Dont_know +let valid_behaviors kf state = + let funspec = Annotations.funspec kf in + let eval_predicate pred = + match Eval_terms.(eval_predicate (env_pre_f ~pre:state ()) pred) with + | Eval_terms.True -> Alarmset.True + | Eval_terms.False -> Alarmset.False + | Eval_terms.Unknown -> Alarmset.Unknown + in + let ab = Active_behaviors.create eval_predicate funspec in + Active_behaviors.active_behaviors ab + let () = - (* Pretty-printing *) - Db.Value.use_spec_instead_of_definition := use_spec_instead_of_definition; + Db.Value.is_called := Function_calls.is_called; + Db.Value.callers := Function_calls.callsites; + Db.Value.use_spec_instead_of_definition := + Function_calls.use_spec_instead_of_definition; Db.Value.assigns_outputs_to_zone := assigns_outputs_to_zone; Db.Value.assigns_outputs_to_locations := assigns_outputs_to_locations; Db.Value.assigns_inputs_to_zone := assigns_inputs_to_zone; @@ -150,6 +155,7 @@ let () = Db.Value.access_location := access_value_of_location; Db.Value.access_expr := access_value_of_expr; Db.Value.Logic.eval_predicate := eval_predicate; + Db.Value.valid_behaviors := valid_behaviors; Db.From.find_deps_term_no_transitivity_state := find_deps_term_no_transitivity_state; diff --git a/src/plugins/value/self.ml b/src/plugins/value/self.ml index 84e12b63e791fbc0c4193ff32bc6ca8113e8fdfe..430ed2dfde6c190fe6d58c1fca3c4af01cadfcf1 100644 --- a/src/plugins/value/self.ml +++ b/src/plugins/value/self.ml @@ -132,3 +132,4 @@ let wkey_invalid_assigns = register_warn_category "invalid-assigns" let () = set_warn_status wkey_invalid_assigns Log.Wfeedback let wkey_experimental = register_warn_category "experimental" let wkey_unknown_size = register_warn_category "unknown-size" +let wkey_ensures_false = register_warn_category "ensures-false" diff --git a/src/plugins/value/self.mli b/src/plugins/value/self.mli index f975ab4db65c66f3a491aedc74f8b647f0c675b5..97b25ff341643a3f700ffffb5f2fe9a0ab4a8ddb 100644 --- a/src/plugins/value/self.mli +++ b/src/plugins/value/self.mli @@ -77,3 +77,4 @@ val wkey_signed_overflow : warn_category val wkey_invalid_assigns : warn_category val wkey_experimental : warn_category val wkey_unknown_size : warn_category +val wkey_ensures_false : warn_category diff --git a/src/plugins/value/utils/mark_noresults.ml b/src/plugins/value/utils/active_behaviors.ml similarity index 53% rename from src/plugins/value/utils/mark_noresults.ml rename to src/plugins/value/utils/active_behaviors.ml index f679f39b8bad2d0148e1771357d6cb1e508bd16d..bd8599329f878218e82c8acf86f520db710135ff 100644 --- a/src/plugins/value/utils/mark_noresults.ml +++ b/src/plugins/value/utils/active_behaviors.ml @@ -20,25 +20,56 @@ (* *) (**************************************************************************) -let should_memorize_function f = - Parameters.ResultsAll.get () && - not (Cil_datatype.Fundec.Set.mem - f (Parameters.NoResultsFunctions.get ())) +open Cil_types -let () = Db.Value.no_results := - (fun fd -> not (should_memorize_function fd) - || not (Parameters.Domains.mem "cvalue")) +let create_conjunction l = + let open Logic_const in + let loc = match l with + | [] -> None + | p :: _ -> Some (pred_of_id_pred p).pred_loc + in + let predicates = List.map pred_of_id_pred l in + List.fold_right (fun p1 p2 -> pand ?loc (p1, p2)) predicates ptrue -(* Signal that some results are not stored. The gui, or some calls to - Db.Value, may fail ungracefully *) -let no_memoization_enabled () = - not (Parameters.ResultsAll.get ()) || - not (Parameters.NoResultsFunctions.is_empty ()) +type t = { + funspec: funspec; + is_active: funbehavior -> Alarmset.status +} +module HashBehaviors = Hashtbl.Make( + struct + type t = funbehavior + let equal b1 b2 = b1.b_name = b2.b_name + let hash b = Hashtbl.hash b.b_name + end) +let is_active eval_predicate b = + let assumes = create_conjunction b.b_assumes in + eval_predicate assumes -(* -Local Variables: -compile-command: "make -C ../../../.." -End: -*) +let create eval_predicate funspec = + let h = HashBehaviors.create 3 in + let is_active = fun b -> + try HashBehaviors.find h b + with Not_found -> + let active = is_active eval_predicate b in + HashBehaviors.add h b active; + active + in + { is_active; funspec } + +let is_active ab behavior = ab.is_active behavior + +let active_behaviors ab = + List.filter + (fun b -> is_active ab b != Alarmset.False) + ab.funspec.spec_behavior + +let is_active_from_name ab name = + try + let list = ab.funspec.spec_behavior in + let behavior = List.find (fun b' -> b'.b_name = name) list in + is_active ab behavior + (* This case happens for behaviors of statement contract, that are not + handled by this module. *) + with Not_found -> Alarmset.Unknown diff --git a/src/plugins/value/utils/mark_noresults.mli b/src/plugins/value/utils/active_behaviors.mli similarity index 87% rename from src/plugins/value/utils/mark_noresults.mli rename to src/plugins/value/utils/active_behaviors.mli index 2710d864476daa6534727114716eb87ca7434ea4..5ca99b054e509adff1e01890f8612d1cdd4c2c62 100644 --- a/src/plugins/value/utils/mark_noresults.mli +++ b/src/plugins/value/utils/active_behaviors.mli @@ -20,8 +20,10 @@ (* *) (**************************************************************************) -(** Are the states of the function analysis saved? *) -val should_memorize_function: Cil_types.fundec -> bool +open Cil_types -(** Signal that some analysis results are not stored. *) -val no_memoization_enabled: unit -> bool +type t +val is_active: t -> behavior -> Alarmset.status +val is_active_from_name: t -> string -> Alarmset.status +val active_behaviors: t -> behavior list +val create: (predicate -> Alarmset.status) -> spec -> t diff --git a/src/plugins/value/utils/eva_results.ml b/src/plugins/value/utils/eva_results.ml index 266589b752a99adadbf133b3d3825a6b9b096e56..fcdde083d16286edfcb8b0059f098e4381f94ae6 100644 --- a/src/plugins/value/utils/eva_results.ml +++ b/src/plugins/value/utils/eva_results.ml @@ -22,62 +22,6 @@ open Cil_datatype -(* {2 Is called} *) - -module Is_Called = - Kernel_function.Make_Table - (Datatype.Bool) - (struct - let name = "Value.Eva_results.is_called" - let dependencies = [ Self.state ] - let size = 17 - end) - -let is_called = - Is_Called.memo - (fun kf -> - try Db.Value.is_reachable_stmt (Kernel_function.find_first_stmt kf) - with Kernel_function.No_Statement -> false) - -let mark_kf_as_called kf = - Is_Called.replace kf true - - -(* {2 Callers} *) - -module Callers = - Kernel_function.Make_Table - (Kernel_function.Map.Make(Stmt.Set)) - (struct - let name = "Value.Eva_results.Callers" - let dependencies = [ Self.state ] - let size = 17 - end) - -let add_kf_caller ~caller:(caller_kf, call_site) kf = - let add m = Kernel_function.Map.add caller_kf (Stmt.Set.singleton call_site) m - in - let change m = - try - let call_sites = Kernel_function.Map.find caller_kf m in - Kernel_function.Map.add caller_kf (Stmt.Set.add call_site call_sites) m - with Not_found -> - add m - in - ignore (Callers.memo ~change (fun _kf -> add Kernel_function.Map.empty) kf) - - -let callers kf = - try - let m = Callers.find kf in - Kernel_function.Map.fold - (fun key v acc -> (key, Stmt.Set.elements v) :: acc) - m - [] - with Not_found -> - [] - - (* {2 Termination.} *) let partition_terminating_instr stmt = @@ -103,13 +47,6 @@ let is_non_terminating_instr stmt = | _, _ -> false -(* {2 Registration.} *) - -let () = - Db.Value.is_called := is_called; - Db.Value.callers := callers; -;; - (* {2 Saving and restoring state} *) type stmt_by_callstack = Cvalue.Model.t Value_types.Callstack.Hashtbl.t @@ -123,8 +60,7 @@ type results = { before_states: stmt_by_callstack Stmt.Hashtbl.t; after_states: stmt_by_callstack Stmt.Hashtbl.t; kf_initial_states: stmt_by_callstack Kernel_function.Hashtbl.t; - kf_is_called: bool Kernel_function.Hashtbl.t; - kf_callers: Stmt.Set.t Kernel_function.Map.t Kernel_function.Hashtbl.t; + kf_callers: Function_calls.t; initial_state: Cvalue.Model.t; initial_args: Cvalue.V.t list option; alarms: Property_status.emitted_status AlarmsStmt.Hashtbl.t; @@ -156,16 +92,7 @@ let get_results () = Globals.Functions.iter copy; h in - let kf_is_called = - let h = Kernel_function.Hashtbl.create 128 in - Is_Called.iter (Kernel_function.Hashtbl.add h); - h - in - let kf_callers = - let h = Kernel_function.Hashtbl.create 128 in - Callers.iter (Kernel_function.Hashtbl.add h); - h - in + let kf_callers = Function_calls.get_results () in let initial_state = Db.Value.globals_state () in let initial_args = Db.Value.fun_get_args () in let aux_statuses f_status ip = @@ -198,7 +125,7 @@ let get_results () = | _ -> add () in Property_status.iter aux_ip; - { before_states; after_states; kf_initial_states; kf_is_called; kf_callers; + { before_states; after_states; kf_initial_states; kf_callers; initial_state; initial_args; alarms; statuses; main } let set_results results = @@ -229,19 +156,7 @@ let set_results results = Value_types.Callstack.Hashtbl.iter aux_callstack h in Kernel_function.Hashtbl.iter aux_initial_state results.kf_initial_states; - (* Kf is_called *) - Kernel_function.Hashtbl.iter Is_Called.replace results.kf_is_called; - (* Kf callers *) - let aux_callers callee m = - let aux_caller caller stmts = - let aux_stmt callsite = - add_kf_caller ~caller:(caller, callsite) callee - in - Stmt.Set.iter aux_stmt stmts - in - Kernel_function.Map.iter aux_caller m - in - Kernel_function.Hashtbl.iter aux_callers results.kf_callers; + Function_calls.set_results results.kf_callers; (* Alarms *) let aux_alarms (alarm, stmt) st = let ki = Cil_types.Kstmt stmt in @@ -322,10 +237,6 @@ let merge r1 r2 = | Dont_know, _ | _, Dont_know -> Dont_know | True, True -> True in - let merge_callers _ m1 m2 = - let aux _kf s1 s2 = Some (Stmt.Set.union s1 s2) in - Kernel_function.Map.union aux m1 m2 - in let merge_s_cs = StmtH.merge merge_cs in let main = match r1.main, r2.main with | None, _ | _, None -> None @@ -337,10 +248,7 @@ let merge r1 r2 = let kf_initial_states = KfH.merge merge_cs r1.kf_initial_states r2.kf_initial_states in - let kf_is_called = - KfH.merge (fun _ -> (||)) r1.kf_is_called r2.kf_is_called - in - let kf_callers = KfH.merge merge_callers r1.kf_callers r2.kf_callers in + let kf_callers = Function_calls.merge_results r1.kf_callers r2.kf_callers in let alarms = AlarmsStmtH.merge merge_statuses r1.alarms r2.alarms in let statuses = PropertyH.merge merge_statuses r1.statuses r2.statuses in let initial_state = Cvalue.Model.join r1.initial_state r2.initial_state in @@ -352,7 +260,7 @@ let merge r1 r2 = try Some (List.map2 Cvalue.V.join args1 args2) with Invalid_argument _ -> None (* should not occur *) in - { main; before_states; after_states; kf_initial_states; kf_is_called; + { main; before_states; after_states; kf_initial_states; initial_state; initial_args; alarms; statuses; kf_callers } diff --git a/src/plugins/value/utils/eva_results.mli b/src/plugins/value/utils/eva_results.mli index 4a40e7f9d069e2ed58e22ea8d92e8ee3f507b997..09c2bd8d36b9e45847560ad7e5ed5180728dc9ff 100644 --- a/src/plugins/value/utils/eva_results.mli +++ b/src/plugins/value/utils/eva_results.mli @@ -22,14 +22,6 @@ open Cil_types -val is_called: kernel_function -> bool -val mark_kf_as_called: kernel_function -> unit -val add_kf_caller: caller:kernel_function * stmt -> kernel_function -> unit - -val callers: kernel_function -> (kernel_function*stmt list) list -(** @return the list of callers with their call sites. Each function is - present only once in the list. *) - val is_non_terminating_instr: stmt -> bool (** Returns [true] iff there exists executions of the statement that does not always fail/loop (for function calls). Must be called *only* on diff --git a/src/plugins/value/utils/results.ml b/src/plugins/value/utils/results.ml index 6e92b4373d7234f4919ff260b91e34f67b68df90..540bc32142af6c42de9b85c1dbca17bc36ab2504 100644 --- a/src/plugins/value/utils/results.ml +++ b/src/plugins/value/utils/results.ml @@ -22,6 +22,12 @@ open Lattice_bounds +let are_available kf = + Analysis.is_computed () && + match Analysis.status kf with + | Analyzed (Complete | Partial) -> true + | SpecUsed | Builtin _ | Unreachable | Analyzed NoResults -> false + module Callstack = Value_types.Callstack type callstack = Callstack.t @@ -102,14 +108,16 @@ struct (* Constructors *) - let consolidated = + let consolidated ~top = function | `Bottom -> Bottom + | `Top -> Consolidated top | `Value state -> Consolidated state let singleton cs = function | `Bottom -> Bottom + | `Top -> Top | `Value state -> ByCallstack [cs,state] let by_callstack : request -> @@ -232,7 +240,7 @@ struct | Start kf -> A.get_initial_state kf | Initial -> A.get_global_state () in - consolidated state + consolidated ~top:A.Dom.top state let convert : 'a or_top_bottom -> 'a result = function | `Top -> Result.error Top @@ -670,10 +678,6 @@ let is_bottom : type a. a evaluation -> bool = let module L = (val lvaluation : Lvaluation) in L.is_bottom L.v -let is_called kf = - let module M = Make () in - M.is_reachable (at_start_of kf) - let is_reachable stmt = let module M = Make () in M.is_reachable (before stmt) @@ -686,29 +690,9 @@ let condition_truth_value = Db.Value.condition_truth_value (* Callers / callsites *) -let callers kf = - let f = function - | [] | [_] -> None - | _ :: (caller,_) :: _-> Some caller - in - at_start_of kf |> callstacks |> - List.filter_map f |> List.sort_uniq Kernel_function.compare - -let uniq_sites = List.sort_uniq Cil_datatype.Stmt.compare - -let callsites kf = - let module Map = Kernel_function.Map in - let f acc = function - | [] | (_,Cil_types.Kglobal) :: _ -> acc - | [(_,Kstmt _)] -> assert false (* End of callstacks should have no callsite *) - | (_kf,Kstmt stmt) :: (caller,_) :: _ -> (* kf = _kf *) - Map.update caller - (fun old -> Some (stmt :: Option.value ~default:[] old)) acc - in - at_start_of kf |> callstacks |> - List.fold_left f Map.empty |> Map.to_seq |> List.of_seq |> - List.map (fun (kf,sites) -> kf, uniq_sites sites) - +let is_called = Function_calls.is_called +let callers = Function_calls.callers +let callsites = Function_calls.callsites (* Result conversion *) diff --git a/src/plugins/value/utils/results.mli b/src/plugins/value/utils/results.mli index a35f29f8d30cc08b81ea9531ead9184e34b242df..de423c3260fa3a6da2d8bcf3c7c9cb8fdb911092 100644 --- a/src/plugins/value/utils/results.mli +++ b/src/plugins/value/utils/results.mli @@ -54,6 +54,16 @@ default O (as_int (eval_var vi (in_callstack cs (before stmt)))) *) +(** Are results available for a given function? True if the function body has + been has been analyzed and the results have been saved. + False if: + - the function has not been reached by the analysis: all requests in the + function will lead to a Bottom error. + - a specification or a builtin has been used instead of analyzing the + function body: all requests in the function will lead to a Bottom error. + - results have not been saved, due to the [-eva-no-results] parameter: + all requests in the function will lead to a Top error. *) +val are_available: Cil_types.kernel_function -> bool type callstack = (Cil_types.kernel_function * Cil_types.kinstr) list diff --git a/src/plugins/value/values/numerors/numerors_float.ml b/src/plugins/value/values/numerors/numerors_float.ml index ae8c540a2880f5df43bde964c58ba5089e245a44..07bdd9f9f455aee8a939051bcca4a008c1f73c8c 100644 --- a/src/plugins/value/values/numerors/numerors_float.ml +++ b/src/plugins/value/values/numerors/numerors_float.ml @@ -122,7 +122,7 @@ let neg_inf prec = of_mpfr prec @@ Mpfrf.of_float neg_infinity Mpfr.Near *---------------------------------------------------------------------------*) let compare (px, nx) (py, ny) = if not (Precisions.eq px py) then - Eva.Private.Self.fatal + Self.fatal "Numerors: impossible to compare two numbers with different precisions" else Mpfrf.cmp nx ny let eq a b = compare a b = 0 diff --git a/src/plugins/variadic/Makefile.in b/src/plugins/variadic/Makefile.in index e6d7e0ca24c30195cee5e5450789feaa092a27d2..d1eb8663af0792793af4ca6100f175156d607270 100644 --- a/src/plugins/variadic/Makefile.in +++ b/src/plugins/variadic/Makefile.in @@ -45,6 +45,14 @@ PLUGIN_DISTRIBUTED := $(PLUGIN_ENABLE) PLUGIN_DISTRIB_EXTERNAL:= Makefile.in configure.ac configure #PLUGIN_NO_DEFAULT_TEST := no PLUGIN_TESTS_DIRS := declared defined known erroneous +PLUGIN_DISTRIB_TESTS := \ + $(foreach dir, $(addprefix tests/,$(PLUGIN_TESTS_DIRS)), \ + $(dir)/oracle/* \ + $(filter-out result oracle,$(dir)/*)) \ + ) \ + $(filter-out result oracle,tests/*)) \ + $(foreach dir, tests $(addprefix tests/,$(PLUGIN_TESTS_DIRS)), \ + $(dir)/test_config) ################ # Generic part # diff --git a/src/plugins/variadic/tests/declared/function-ptr-with-ghost.i b/src/plugins/variadic/tests/declared/function-ptr-with-ghost.i index 0ab1f1a1c0c7e5597794b56a0192ee6cb5cf9206..58f175bdf3a37f53121551512ab109b9d966baef 100644 --- a/src/plugins/variadic/tests/declared/function-ptr-with-ghost.i +++ b/src/plugins/variadic/tests/declared/function-ptr-with-ghost.i @@ -5,4 +5,4 @@ void va_f(int, ...) /*@ ghost(int x) */ ; int main(void){ function(va_f, 3); -} \ No newline at end of file +} diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index 143cc25dde16f434cac1a50a059917370ebbb0ef..77b25a189666b5ac51fb1fdebdb614392a3c1610 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -1129,15 +1129,7 @@ let get_output_dir d = (* --- Session dir --- *) (* -------------------------------------------------------------------------- *) -(* TODO: we currently use PWD instead of Sys.getcwd () because OCaml has - no function in its stdlib to resolve symbolic links (e.g. realpath) - for a given path. 'getcwd' always resolves them, but if the user - supplies a path with symbolic links, this may cause issues. - Instead of forcing the user to always provide resolved paths, we - currently choose to never resolve them. - We only resort to getcwd() to avoid issues when PWD does not exist. *) -let default = - (try Sys.getenv "PWD" with Not_found -> Sys.getcwd ()) ^ "/.frama-c" +let default = Fc_Filepath.pwd () ^ "/.frama-c" let has_session () = Session.is_set () || diff --git a/tests/builtins/oracle/imprecise.res.oracle b/tests/builtins/oracle/imprecise.res.oracle index b61a66f867893673b1b2dc405b68d0dd3d493381..c5d23a2cbd6870325adf211e6bde1b09c99cfab4 100644 --- a/tests/builtins/oracle/imprecise.res.oracle +++ b/tests/builtins/oracle/imprecise.res.oracle @@ -129,10 +129,10 @@ [eva] Done for function cast_address [eva] computing for function garbled_mix_null <- main. Called from imprecise.c:148. -[eva] computing for function gm_f1 <- garbled_mix_null <- main. - Called from imprecise.c:75. [kernel:annot:missing-spec] imprecise.c:75: Warning: Neither code nor specification for function gm_f1, generating default assigns from the prototype +[eva] computing for function gm_f1 <- garbled_mix_null <- main. + Called from imprecise.c:75. [eva] using specification for function gm_f1 [eva] Done for function gm_f1 [eva] imprecise.c:76: @@ -167,10 +167,10 @@ [eva:alarm] imprecise.c:77: Warning: accessing left-value that contains escaping addresses. assert ¬\dangling(p_gm_null); -[eva] computing for function gm_f2 <- garbled_mix_null <- main. - Called from imprecise.c:77. [kernel:annot:missing-spec] imprecise.c:77: Warning: Neither code nor specification for function gm_f2, generating default assigns from the prototype +[eva] computing for function gm_f2 <- garbled_mix_null <- main. + Called from imprecise.c:77. [eva] using specification for function gm_f2 [eva] Done for function gm_f2 [eva] imprecise.c:78: diff --git a/tests/builtins/oracle/watch.res.oracle b/tests/builtins/oracle/watch.res.oracle index d4614af09571f9432fc8944a259c19c8b41d79f7..d0a7fe337f5359bd6bd41e7536d4d1c6d7489935 100644 --- a/tests/builtins/oracle/watch.res.oracle +++ b/tests/builtins/oracle/watch.res.oracle @@ -15,10 +15,10 @@ [eva] watch.c:10: Call to builtin Frama_C_watch_value [eva] watch.c:13: Watchpoint: & c [--..--] [eva] watch.c:14: Watchpoint: & c [--..--] -[eva] computing for function u <- main. - Called from watch.c:16. [kernel:annot:missing-spec] watch.c:16: Warning: Neither code nor specification for function u, generating default assigns from the prototype +[eva] computing for function u <- main. + Called from watch.c:16. [eva] using specification for function u [eva] Done for function u [eva] watch.c:17: Watchpoint: & c [--..--] diff --git a/tests/constant_propagation/oracle/fct_ptr.res.oracle b/tests/constant_propagation/oracle/fct_ptr.res.oracle index 89f9227804b66c8807052a458436b2125ba9e4d8..3b6bf0a4150ceb31f0c6c4089e29839eda1dffd4 100644 --- a/tests/constant_propagation/oracle/fct_ptr.res.oracle +++ b/tests/constant_propagation/oracle/fct_ptr.res.oracle @@ -7,10 +7,10 @@ pf ∈ {0} [eva] computing for function g <- main. Called from fct_ptr.i:15. -[eva] computing for function f <- g <- main. - Called from fct_ptr.i:8. [kernel:annot:missing-spec] fct_ptr.i:8: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- g <- main. + Called from fct_ptr.i:8. [eva] using specification for function f [eva] Done for function f [eva] Recording results for g diff --git a/tests/fc_script/make-wrapper.c b/tests/fc_script/make-wrapper.c index cea0c8d5e3d6e0ab46cf2143359bf783552bde51..571dd185ada00e6bfdb91bdbc88d2609a951656e 100644 --- a/tests/fc_script/make-wrapper.c +++ b/tests/fc_script/make-wrapper.c @@ -2,8 +2,11 @@ MACRO: RM_TMP_DIR rm -rf make-for-make-wrapper.parse make-for-make-wrapper.eva NOFRAMAC: testing frama-c-script COMMENT: in case of errors, remove the 'grep' part to get the full output - EXECNOW: LOG make-wrapper.res LOG make-wrapper.err (cd @PTEST_DIR@ && touch %{dep:make-wrapper2.c} && touch %{dep:make-wrapper3.c} && @RM_TMP_DIR@ && FRAMAC=%{bin:frama-c} PTESTS_TESTING=1 %{bin:frama-c-script} make-wrapper --make-dir . -f %{dep:make-for-make-wrapper.mk} | grep -A999999 "make-wrapper recommendations" && @RM_TMP_DIR@) > @PTEST_RESULT@/make-wrapper.res 2> @PTEST_RESULT@/make-wrapper.err + PLUGIN: eva,from,inout,metrics,nonterm,report,scope,variadic + EXECNOW: LOG make-wrapper.res LOG make-wrapper.err (cd @PTEST_DIR@ && touch %{dep:make-wrapper2.c} && touch %{dep:make-wrapper3.c} && @RM_TMP_DIR@ && FRAMAC='%{bin:frama-c} @PTEST_DEFAULT_OPTIONS@ @PTEST_LOAD_OPTIONS@' PTESTS_TESTING=1 %{bin:frama-c-script} make-wrapper --make-dir . -f %{dep:make-for-make-wrapper.mk} | grep -A999999 "make-wrapper recommendations" && @RM_TMP_DIR@) > @PTEST_RESULT@/make-wrapper.res 2> @PTEST_RESULT@/make-wrapper.err */ + + int defined(int a); int specified(int a); diff --git a/tests/fc_script/oracle/heuristic_list_functions.res b/tests/fc_script/oracle/heuristic_list_functions.res index b9cfea105053534f7a392710bc375f1b5bf61e1b..e6e9c83fdb59cc02b45869c5e9bbbe1c015c15c1 100644 --- a/tests/fc_script/oracle/heuristic_list_functions.res +++ b/tests/fc_script/oracle/heuristic_list_functions.res @@ -12,12 +12,12 @@ main2.c:6:8: fake_main (definition) main2.c:10:12: domain (definition) main2.c:14:16: main2 (definition) main3.c:6:9: main (definition) -make-wrapper.c:7:7: defined (declaration) -make-wrapper.c:9:9: specified (declaration) -make-wrapper.c:11:11: external (declaration) -make-wrapper.c:13:15: large_name_to_force_line_break_in_stack_msg (definition) -make-wrapper.c:17:19: rec (definition) -make-wrapper.c:21:27: main (definition) +make-wrapper.c:10:10: defined (declaration) +make-wrapper.c:12:12: specified (declaration) +make-wrapper.c:14:14: external (declaration) +make-wrapper.c:16:18: large_name_to_force_line_break_in_stack_msg (definition) +make-wrapper.c:20:22: rec (definition) +make-wrapper.c:24:30: main (definition) make-wrapper2.c:5:7: defined (definition) make-wrapper2.c:13:13: specified (declaration) make-wrapper2.c:16:16: external (declaration) diff --git a/tests/fc_script/oracle/make-wrapper.res b/tests/fc_script/oracle/make-wrapper.res index 160d23b9cd9a58a418a134bd6782f5575f8a29f0..a291cdc31ab4cd51a4176787f3cbe67776a4972d 100644 --- a/tests/fc_script/oracle/make-wrapper.res +++ b/tests/fc_script/oracle/make-wrapper.res @@ -3,9 +3,9 @@ *** recommendation #1 *** 1. Found recursive call at: - stack: large_name_to_force_line_break_in_stack_msg :: make-wrapper.c:14 <- - large_name_to_force_line_break_in_stack_msg :: make-wrapper.c:18 <- - rec :: make-wrapper.c:23 <- + stack: large_name_to_force_line_break_in_stack_msg :: make-wrapper.c:17 <- + large_name_to_force_line_break_in_stack_msg :: make-wrapper.c:21 <- + rec :: make-wrapper.c:26 <- main Consider patching, stubbing or adding an ACSL specification to the recursive call, then re-run the analysis. diff --git a/tests/float/oracle/alarms.0.res.oracle b/tests/float/oracle/alarms.0.res.oracle index 56452818c480a652a5846f033d785d4c754fe0da..8e964fd6c677d12e8068ca89de3c960044b80c11 100644 --- a/tests/float/oracle/alarms.0.res.oracle +++ b/tests/float/oracle/alarms.0.res.oracle @@ -32,10 +32,10 @@ tmp ∈ UNINITIALIZED l ∈ [--..--] ==END OF DUMP== -[eva] computing for function fd <- main1 <- main. - Called from alarms.i:21. [kernel:annot:missing-spec] alarms.i:21: Warning: Neither code nor specification for function fd, generating default assigns from the prototype +[eva] computing for function fd <- main1 <- main. + Called from alarms.i:21. [eva] using specification for function fd [eva] Done for function fd [eva:alarm] alarms.i:21: Warning: diff --git a/tests/float/oracle/alarms.1.res.oracle b/tests/float/oracle/alarms.1.res.oracle index e6c9a72e274d561e744c9b83cf14d450cac99886..95735134c42367149c53c4ba8502e4cc652e78e4 100644 --- a/tests/float/oracle/alarms.1.res.oracle +++ b/tests/float/oracle/alarms.1.res.oracle @@ -29,10 +29,10 @@ tmp ∈ UNINITIALIZED l ∈ [--..--] ==END OF DUMP== -[eva] computing for function fd <- main1 <- main. - Called from alarms.i:21. [kernel:annot:missing-spec] alarms.i:21: Warning: Neither code nor specification for function fd, generating default assigns from the prototype +[eva] computing for function fd <- main1 <- main. + Called from alarms.i:21. [eva] using specification for function fd [eva] Done for function fd [eva:alarm] alarms.i:21: Warning: diff --git a/tests/float/oracle/alarms.2.res.oracle b/tests/float/oracle/alarms.2.res.oracle index 41b7b1439a87c1d8fe89d3e63226cc6a3a8c321e..6c47a9b44c57b387e173f5f380b9e47c2e794498 100644 --- a/tests/float/oracle/alarms.2.res.oracle +++ b/tests/float/oracle/alarms.2.res.oracle @@ -26,10 +26,10 @@ tmp ∈ UNINITIALIZED l ∈ [--..--] ==END OF DUMP== -[eva] computing for function fd <- main1 <- main. - Called from alarms.i:21. [kernel:annot:missing-spec] alarms.i:21: Warning: Neither code nor specification for function fd, generating default assigns from the prototype +[eva] computing for function fd <- main1 <- main. + Called from alarms.i:21. [eva] using specification for function fd [eva] Done for function fd [eva] computing for function fd <- main1 <- main. diff --git a/tests/float/oracle/contract_special_float.1.res.oracle b/tests/float/oracle/contract_special_float.1.res.oracle index fe8edb1fd33ab883cdfdee3b00b9c7ecfe98c5f0..86c08416bbdaff949193ab85ef743721a2d09340 100644 --- a/tests/float/oracle/contract_special_float.1.res.oracle +++ b/tests/float/oracle/contract_special_float.1.res.oracle @@ -16,10 +16,10 @@ [eva] Done for function fun [eva:alarm] contract_special_float.c:93: Warning: NaN double value. assert ¬\is_NaN(v); -[eva] computing for function fun_no_default <- main. - Called from contract_special_float.c:94. [kernel] contract_special_float.c:94: Warning: No code nor explicit assigns clause for function fun_no_default, generating default assigns from the specification +[eva] computing for function fun_no_default <- main. + Called from contract_special_float.c:94. [eva] using specification for function fun_no_default [eva:alarm] contract_special_float.c:94: Warning: function fun_no_default: precondition 'not_negative' got status unknown. diff --git a/tests/float/oracle/contract_special_float.2.res.oracle b/tests/float/oracle/contract_special_float.2.res.oracle index 3224017364e22a08d51e47a88d6a0cd9417437b8..daefc3e0500b277b95d58763b0a48636faf4978f 100644 --- a/tests/float/oracle/contract_special_float.2.res.oracle +++ b/tests/float/oracle/contract_special_float.2.res.oracle @@ -8,10 +8,10 @@ Called from contract_special_float.c:92. [eva] using specification for function fun [eva] Done for function fun -[eva] computing for function fun_no_default <- main. - Called from contract_special_float.c:94. [kernel] contract_special_float.c:94: Warning: No code nor explicit assigns clause for function fun_no_default, generating default assigns from the specification +[eva] computing for function fun_no_default <- main. + Called from contract_special_float.c:94. [eva] using specification for function fun_no_default [eva] Done for function fun_no_default [eva] computing for function fun_no_disjoint <- main. diff --git a/tests/float/oracle/s.res.oracle b/tests/float/oracle/s.res.oracle index 6efaa5f37230b6b9441b3ac90e4f12c471c609ce..4981289b342551b63ac74d396431c9e71950ca1d 100644 --- a/tests/float/oracle/s.res.oracle +++ b/tests/float/oracle/s.res.oracle @@ -244,18 +244,18 @@ G19 ∈ {0} [eva] computing for function F4 <- main. Called from s.i:260. -[eva] computing for function F1 <- F4 <- main. - Called from s.i:230. [kernel:annot:missing-spec] s.i:230: Warning: Neither code nor specification for function F1, generating default assigns from the prototype +[eva] computing for function F1 <- F4 <- main. + Called from s.i:230. [eva] using specification for function F1 [eva] Done for function F1 [eva:alarm] s.i:231: Warning: accessing out of bounds index. assert 0 ≤ V4; [eva:alarm] s.i:231: Warning: accessing out of bounds index. assert V4 < 64; -[eva] computing for function F2 <- F4 <- main. - Called from s.i:233. [kernel:annot:missing-spec] s.i:233: Warning: Neither code nor specification for function F2, generating default assigns from the prototype +[eva] computing for function F2 <- F4 <- main. + Called from s.i:233. [eva] using specification for function F2 [eva] Done for function F2 [eva:alarm] s.i:238: Warning: accessing out of bounds index. assert 0 ≤ V5; @@ -265,10 +265,10 @@ [eva] Done for function F2 [eva:alarm] s.i:242: Warning: accessing out of bounds index. assert 0 ≤ V6; [eva:alarm] s.i:242: Warning: accessing out of bounds index. assert V6 < 64; -[eva] computing for function F3 <- F4 <- main. - Called from s.i:244. [kernel:annot:missing-spec] s.i:244: Warning: Neither code nor specification for function F3, generating default assigns from the prototype +[eva] computing for function F3 <- F4 <- main. + Called from s.i:244. [eva] using specification for function F3 [eva] Done for function F3 [eva:alarm] s.i:245: Warning: accessing out of bounds index. assert 0 ≤ V7; diff --git a/tests/impact/oracle/call.0.res.oracle b/tests/impact/oracle/call.0.res.oracle index 20364db19a0bcb57304643cffb859085f6d40fef..10834db797c6b9fd61331ed083dfe5cd8bcd6edd 100644 --- a/tests/impact/oracle/call.0.res.oracle +++ b/tests/impact/oracle/call.0.res.oracle @@ -12,10 +12,10 @@ Called from call.i:16. [eva] using specification for function p1 [eva] Done for function p1 -[eva] computing for function p2 <- test <- main. - Called from call.i:16. [kernel:annot:missing-spec] call.i:16: Warning: Neither code nor specification for function p2, generating default assigns from the prototype +[eva] computing for function p2 <- test <- main. + Called from call.i:16. [eva] using specification for function p2 [eva] Done for function p2 [eva] Recording results for test diff --git a/tests/impact/oracle/call.1.res.oracle b/tests/impact/oracle/call.1.res.oracle index 9f1a28300c66fcac0559aa738d890905eb7ca679..7388b39fa5c93ed2feb78abc754f6311667da8f7 100644 --- a/tests/impact/oracle/call.1.res.oracle +++ b/tests/impact/oracle/call.1.res.oracle @@ -14,10 +14,10 @@ Called from call.i:16. [eva] using specification for function p1 [eva] Done for function p1 -[eva] computing for function p2 <- test <- call_test <- main2. - Called from call.i:16. [kernel:annot:missing-spec] call.i:16: Warning: Neither code nor specification for function p2, generating default assigns from the prototype +[eva] computing for function p2 <- test <- call_test <- main2. + Called from call.i:16. [eva] using specification for function p2 [eva] Done for function p2 [eva] Recording results for test diff --git a/tests/impact/oracle/call.2.res.oracle b/tests/impact/oracle/call.2.res.oracle index 517e087479b9f93b1cecb56c69aec47611bc556c..8f91333b85850fc0097eda8efa92321f9859d39a 100644 --- a/tests/impact/oracle/call.2.res.oracle +++ b/tests/impact/oracle/call.2.res.oracle @@ -15,10 +15,10 @@ [eva] using specification for function p3 [eva] call.i:41: Warning: no \from part for clause 'assigns G;' [eva] Done for function p3 -[eva] computing for function p2 <- test3 <- call_test3 <- main3. - Called from call.i:45. [kernel:annot:missing-spec] call.i:45: Warning: Neither code nor specification for function p2, generating default assigns from the prototype +[eva] computing for function p2 <- test3 <- call_test3 <- main3. + Called from call.i:45. [eva] using specification for function p2 [eva] Done for function p2 [eva] Recording results for test3 diff --git a/tests/impact/oracle/undef_function.res.oracle b/tests/impact/oracle/undef_function.res.oracle index a62609de5f28d0975a112d12effa7d1eb17a31e8..59f4b23f32d44712c698d013533a2cc08693aef3 100644 --- a/tests/impact/oracle/undef_function.res.oracle +++ b/tests/impact/oracle/undef_function.res.oracle @@ -5,10 +5,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization y ∈ {0} -[eva] computing for function g <- main. - Called from undef_function.i:10. [kernel:annot:missing-spec] undef_function.i:10: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from undef_function.i:10. [eva] using specification for function g [eva] Done for function g [eva] Recording results for main diff --git a/tests/impact/oracle/variadic.res.oracle b/tests/impact/oracle/variadic.res.oracle index e36dee6c9a0c0ad3ed90ce5f401da521949b7d6a..b2c68043834b6fd0229f28e39869ed0c22cd78a8 100644 --- a/tests/impact/oracle/variadic.res.oracle +++ b/tests/impact/oracle/variadic.res.oracle @@ -6,10 +6,10 @@ [eva:initial-state] Values of globals at initialization y ∈ {0} z ∈ {0} -[eva] computing for function f <- main. - Called from variadic.i:12. [kernel:annot:missing-spec] variadic.i:12: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from variadic.i:12. [eva] using specification for function f [eva] Done for function f [eva] Recording results for main diff --git a/tests/journal/oracle/intra.res.oracle b/tests/journal/oracle/intra.res.oracle index 1cd1571223722dac18125880403465facf99258e..052f7084beaf919d15fdb51263abd24d850c2459 100644 --- a/tests/journal/oracle/intra.res.oracle +++ b/tests/journal/oracle/intra.res.oracle @@ -48,10 +48,10 @@ Called from intra.i:89. [eva] Recording results for assign [eva] Done for function assign -[eva] computing for function stop <- main. - Called from intra.i:92. [kernel:annot:missing-spec] intra.i:92: Warning: Neither code nor specification for function stop, generating default assigns from the prototype +[eva] computing for function stop <- main. + Called from intra.i:92. [eva] using specification for function stop [eva] Done for function stop [eva] Recording results for main diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle index 6ba53d2036b480268f8f925ee06e00879500715d..eb9d4cd87ec5c6171e6fb573668971226b2196c1 100644 --- a/tests/libc/oracle/fc_libc.1.res.oracle +++ b/tests/libc/oracle/fc_libc.1.res.oracle @@ -3222,17 +3222,42 @@ extern int pipe(int pipefd[2]); /*@ 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); + + behavior full_read: + assumes + nondet_small_count: + Frama_C_entropy_source ≢ 0 ∧ count ≤ 2147483647; + ensures res_full: \result ≡ \old(count); + ensures + res_init: initialization: + \initialized((char *)\old(buf) + (0 .. \old(count) - 1)); + + behavior large_read_implementation_defined: + assumes + nondet_large_count: + Frama_C_entropy_source ≢ 0 ∧ count > 2147483647; + ensures + res_init: initialization: + \initialized((char *)\old(buf) + (0 .. \old(count) - 1)); + + behavior partial_or_error: + assumes nondet: Frama_C_entropy_source ≡ 0; + ensures result_error_or_read_length: -1 ≤ \result < \old(count); + ensures + initialization: buf: + \initialized((char *)\old(buf) + (0 .. \result - 1)); + + complete behaviors partial_or_error, + large_read_implementation_defined, + full_read; + disjoint behaviors partial_or_error, + large_read_implementation_defined, + full_read; */ extern ssize_t read(int fd, void *buf, size_t count); diff --git a/tests/libc/oracle/search_h.res.oracle b/tests/libc/oracle/search_h.res.oracle index 4c13bafba7279dc080a6ef0ddf38420223081c44..d4e3751938630cc926bf1afeda75acff53d06fa0 100644 --- a/tests/libc/oracle/search_h.res.oracle +++ b/tests/libc/oracle/search_h.res.oracle @@ -35,10 +35,10 @@ [eva] Done for function strcpy [eva:alarm] search_h.c:32: Warning: out of bounds write. assert \valid(&elementptr->count); -[eva] computing for function tsearch <- main. - Called from search_h.c:34. [kernel:annot:missing-spec] search_h.c:34: Warning: Neither code nor specification for function tsearch, generating default assigns from the prototype +[eva] computing for function tsearch <- main. + Called from search_h.c:34. [eva] using specification for function tsearch [eva:invalid-assigns] search_h.c:34: Completely invalid destination for assigns clause *compar. Ignoring. @@ -54,10 +54,10 @@ [eva] Done for function exit [eva:alarm] search_h.c:40: Warning: out of bounds read. assert \valid_read((struct element **)node); -[eva] computing for function twalk <- main. - Called from search_h.c:46. [kernel:annot:missing-spec] search_h.c:46: Warning: Neither code nor specification for function twalk, generating default assigns from the prototype +[eva] computing for function twalk <- main. + Called from search_h.c:46. [eva] using specification for function twalk [eva:invalid-assigns] search_h.c:46: Completely invalid destination for assigns clause *action. Ignoring. diff --git a/tests/libc/oracle/socket.0.res.oracle b/tests/libc/oracle/socket.0.res.oracle index 4acfb213c4bf47fc7efa2270fb213a80678388ba..99635468b5f16ccf760bd70d5fed0ea3c85f3cd9 100644 --- a/tests/libc/oracle/socket.0.res.oracle +++ b/tests/libc/oracle/socket.0.res.oracle @@ -50,6 +50,8 @@ [eva] using specification for function read [eva] socket.c:61: function read: precondition 'valid_fd' got status valid. [eva] socket.c:61: function read: precondition 'buf_has_room' got status valid. +[eva] socket.c:61: + function read, behavior large_read_implementation_defined: assumes got status invalid; behavior not evaluated. [eva] Done for function read [eva] computing for function printf_va_1 <- test_read <- main. Called from socket.c:62. @@ -173,6 +175,8 @@ Called from socket.c:115. [eva] socket.c:115: function read: precondition 'valid_fd' got status valid. [eva] socket.c:115: function read: precondition 'buf_has_room' got status valid. +[eva] socket.c:115: + function read, behavior large_read_implementation_defined: assumes got status invalid; behavior not evaluated. [eva] Done for function read [eva] computing for function write <- test_server_echo <- main. Called from socket.c:117. diff --git a/tests/libc/oracle/socket.1.res.oracle b/tests/libc/oracle/socket.1.res.oracle index 0b2bd9c09e3acafc53c4fcdc3283110c241bc1c4..8f908c607936382b0b3797665fb94079fd895b78 100644 --- a/tests/libc/oracle/socket.1.res.oracle +++ b/tests/libc/oracle/socket.1.res.oracle @@ -50,6 +50,8 @@ [eva] using specification for function read [eva] socket.c:61: function read: precondition 'valid_fd' got status valid. [eva] socket.c:61: function read: precondition 'buf_has_room' got status valid. +[eva] socket.c:61: + function read, behavior large_read_implementation_defined: assumes got status invalid; behavior not evaluated. [eva] Done for function read [eva] computing for function printf_va_1 <- test_read <- main. Called from socket.c:62. @@ -173,6 +175,8 @@ Called from socket.c:115. [eva] socket.c:115: function read: precondition 'valid_fd' got status valid. [eva] socket.c:115: function read: precondition 'buf_has_room' got status valid. +[eva] socket.c:115: + function read, behavior large_read_implementation_defined: assumes got status invalid; behavior not evaluated. [eva] Done for function read [eva] computing for function write <- test_server_echo <- main. Called from socket.c:117. diff --git a/tests/libc/oracle/spawn_h.res.oracle b/tests/libc/oracle/spawn_h.res.oracle index b687f61add5134e4d083b5ebae573336f0840311..2f4e8e1010d683fc6d97ab5a26862ec2f9459ca8 100644 --- a/tests/libc/oracle/spawn_h.res.oracle +++ b/tests/libc/oracle/spawn_h.res.oracle @@ -11,10 +11,10 @@ [eva] spawn_h.c:36: Assigning imprecise value to opt. The imprecision originates from Library function {spawn_h.c:36} -[eva] computing for function posix_spawn_file_actions_init <- main. - Called from spawn_h.c:43. [kernel:annot:missing-spec] spawn_h.c:43: Warning: Neither code nor specification for function posix_spawn_file_actions_init, generating default assigns from the prototype +[eva] computing for function posix_spawn_file_actions_init <- main. + Called from spawn_h.c:43. [eva] using specification for function posix_spawn_file_actions_init [eva] Done for function posix_spawn_file_actions_init [eva] computing for function perror <- main. @@ -27,10 +27,10 @@ Called from spawn_h.c:45. [eva] using specification for function exit [eva] Done for function exit -[eva] computing for function posix_spawn_file_actions_addclose <- main. - Called from spawn_h.c:47. [kernel:annot:missing-spec] spawn_h.c:47: Warning: Neither code nor specification for function posix_spawn_file_actions_addclose, generating default assigns from the prototype +[eva] computing for function posix_spawn_file_actions_addclose <- main. + Called from spawn_h.c:47. [eva] using specification for function posix_spawn_file_actions_addclose [eva] Done for function posix_spawn_file_actions_addclose [eva] computing for function perror <- main. @@ -41,10 +41,10 @@ [eva] computing for function exit <- main. Called from spawn_h.c:50. [eva] Done for function exit -[eva] computing for function posix_spawnattr_init <- main. - Called from spawn_h.c:60. [kernel:annot:missing-spec] spawn_h.c:60: Warning: Neither code nor specification for function posix_spawnattr_init, generating default assigns from the prototype +[eva] computing for function posix_spawnattr_init <- main. + Called from spawn_h.c:60. [eva] using specification for function posix_spawnattr_init [eva] Done for function posix_spawnattr_init [eva] computing for function perror <- main. @@ -55,10 +55,10 @@ [eva] computing for function exit <- main. Called from spawn_h.c:62. [eva] Done for function exit -[eva] computing for function posix_spawnattr_setflags <- main. - Called from spawn_h.c:63. [kernel:annot:missing-spec] spawn_h.c:63: Warning: Neither code nor specification for function posix_spawnattr_setflags, generating default assigns from the prototype +[eva] computing for function posix_spawnattr_setflags <- main. + Called from spawn_h.c:63. [eva] using specification for function posix_spawnattr_setflags [eva] Done for function posix_spawnattr_setflags [eva] computing for function perror <- main. @@ -75,10 +75,10 @@ [eva] spawn_h.c:67: function sigfillset: precondition 'valid_set' got status valid. [eva] Done for function sigfillset -[eva] computing for function posix_spawnattr_setsigmask <- main. - Called from spawn_h.c:68. [kernel:annot:missing-spec] spawn_h.c:68: Warning: Neither code nor specification for function posix_spawnattr_setsigmask, generating default assigns from the prototype +[eva] computing for function posix_spawnattr_setsigmask <- main. + Called from spawn_h.c:68. [eva] using specification for function posix_spawnattr_setsigmask [eva] Done for function posix_spawnattr_setsigmask [eva] computing for function perror <- main. @@ -143,10 +143,10 @@ [eva] Done for function exit [eva:alarm] spawn_h.c:82: Warning: out of bounds read. assert \valid_read(argv + optind); -[eva] computing for function posix_spawnp <- main. - Called from spawn_h.c:82. [kernel:annot:missing-spec] spawn_h.c:82: Warning: Neither code nor specification for function posix_spawnp, generating default assigns from the prototype +[eva] computing for function posix_spawnp <- main. + Called from spawn_h.c:82. [eva] using specification for function posix_spawnp [eva] Done for function posix_spawnp [eva] computing for function perror <- main. @@ -157,10 +157,10 @@ [eva] computing for function exit <- main. Called from spawn_h.c:85. [eva] Done for function exit -[eva] computing for function posix_spawnattr_destroy <- main. - Called from spawn_h.c:90. [kernel:annot:missing-spec] spawn_h.c:90: Warning: Neither code nor specification for function posix_spawnattr_destroy, generating default assigns from the prototype +[eva] computing for function posix_spawnattr_destroy <- main. + Called from spawn_h.c:90. [eva] using specification for function posix_spawnattr_destroy [eva] Done for function posix_spawnattr_destroy [eva] computing for function perror <- main. @@ -171,10 +171,10 @@ [eva] computing for function exit <- main. Called from spawn_h.c:92. [eva] Done for function exit -[eva] computing for function posix_spawn_file_actions_destroy <- main. - Called from spawn_h.c:96. [kernel:annot:missing-spec] spawn_h.c:96: Warning: Neither code nor specification for function posix_spawn_file_actions_destroy, generating default assigns from the prototype +[eva] computing for function posix_spawn_file_actions_destroy <- main. + Called from spawn_h.c:96. [eva] using specification for function posix_spawn_file_actions_destroy [eva] Done for function posix_spawn_file_actions_destroy [eva] computing for function perror <- main. diff --git a/tests/libc/oracle/unistd_h.0.res.oracle b/tests/libc/oracle/unistd_h.0.res.oracle index 2c6070858f6f0ab0c1849eab3272d2ddba7fc3be..69911d84a7244a5f0a797b6dfe46824a5ca3c93b 100644 --- a/tests/libc/oracle/unistd_h.0.res.oracle +++ b/tests/libc/oracle/unistd_h.0.res.oracle @@ -11,6 +11,7 @@ \return(isatty) == 0 (auto) \return(lseek) == -1 (auto) \return(pipe) == 0 (auto) + \return(read) == -1, 32 (auto) \return(setegid) == 0 (auto) \return(seteuid) == 0 (auto) \return(setgid) == 0 (auto) @@ -564,6 +565,53 @@ Called from unistd_h.c:107. [eva] Done for function sleep [eva] unistd_h.c:108: assertion got status valid. +[eva] computing for function read <- main. + Called from unistd_h.c:111. +[eva] using specification for function read +[eva] unistd_h.c:111: function read: precondition 'valid_fd' got status valid. +[eva] unistd_h.c:111: + function read: precondition 'buf_has_room' got status valid. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:111. +[eva] Done for function read +[eva] unistd_h.c:113: assertion got status valid. +[eva] computing for function read <- main. + Called from unistd_h.c:117. +[eva] unistd_h.c:117: function read: precondition 'valid_fd' got status valid. +[eva] unistd_h.c:117: + function read: precondition 'buf_has_room' got status valid. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:117. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] unistd_h.c:118: function read: precondition 'valid_fd' got status valid. +[eva] unistd_h.c:118: + function read: precondition 'buf_has_room' got status valid. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== @@ -591,4 +639,6 @@ halfpipe ∈ UNINITIALIZED pipefd[0..1] ∈ [0..1023] or UNINITIALIZED unslept ∈ [0..42] + buf[0..4294967294] ∈ [--..--] or UNINITIALIZED + rread ∈ [--..--] __retres ∈ {0; 1} diff --git a/tests/libc/oracle/unistd_h.1.res.oracle b/tests/libc/oracle/unistd_h.1.res.oracle index 31219df8042f56171d9fabbbe9c30c8662d4ab4b..85607de98dd75b610ec922e97d6186922ef614cc 100644 --- a/tests/libc/oracle/unistd_h.1.res.oracle +++ b/tests/libc/oracle/unistd_h.1.res.oracle @@ -11,6 +11,7 @@ \return(isatty) == 0 (auto) \return(lseek) == -1 (auto) \return(pipe) == 0 (auto) + \return(read) == -1, 32 (auto) \return(setegid) == 0 (auto) \return(seteuid) == 0 (auto) \return(setgid) == 0 (auto) @@ -564,6 +565,53 @@ Called from unistd_h.c:107. [eva] Done for function sleep [eva] unistd_h.c:108: assertion got status valid. +[eva] computing for function read <- main. + Called from unistd_h.c:111. +[eva] using specification for function read +[eva] unistd_h.c:111: function read: precondition 'valid_fd' got status valid. +[eva] unistd_h.c:111: + function read: precondition 'buf_has_room' got status valid. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:111. +[eva] Done for function read +[eva] unistd_h.c:113: assertion got status valid. +[eva] computing for function read <- main. + Called from unistd_h.c:117. +[eva] unistd_h.c:117: function read: precondition 'valid_fd' got status valid. +[eva] unistd_h.c:117: + function read: precondition 'buf_has_room' got status valid. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:117. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] unistd_h.c:118: function read: precondition 'valid_fd' got status valid. +[eva] unistd_h.c:118: + function read: precondition 'buf_has_room' got status valid. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read +[eva] computing for function read <- main. + Called from unistd_h.c:118. +[eva] Done for function read [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== @@ -591,4 +639,6 @@ halfpipe ∈ UNINITIALIZED pipefd[0..1] ∈ [0..1023] or UNINITIALIZED unslept ∈ [0..42] + buf[0..4294967294] ∈ [--..--] or UNINITIALIZED + rread ∈ [--..--] __retres ∈ {0; 1} diff --git a/tests/libc/unistd_h.c b/tests/libc/unistd_h.c index 5bb417437e2cf0245e3cc735ab6b8f0b288cef99..a8b8dbba169df6fe6632a2f50137619af62162b1 100644 --- a/tests/libc/unistd_h.c +++ b/tests/libc/unistd_h.c @@ -1,11 +1,11 @@ /*run.config - STDOPT: #"-eva-slevel 12" #"-eva-split-return auto" - STDOPT: #"-variadic-no-translation" #"-eva-slevel 12" #"-eva-split-return auto" + STDOPT: #"-machdep x86_32 -eva-slevel 12" #"-eva-split-return auto" + STDOPT: #"-machdep x86_32 -variadic-no-translation" #"-eva-slevel 12" #"-eva-split-return auto" */ #define _GNU_SOURCE #define _XOPEN_SOURCE 600 #include <unistd.h> - +#include <stdint.h> volatile int nondet; int main() { @@ -107,5 +107,15 @@ int main() { int unslept = sleep(42); //@ assert 0 <= unslept <= 42; + char buf[SIZE_MAX]; + ssize_t rread = read(fd, buf, 32); + if (rread == 32) { + //@ assert \initialized(buf+(0..31)); + } + if (rread == -1) + // In x86-32, SSIZE_MAX < SIZE_MAX, so we check for issues + rread = read(fd, buf, SSIZE_MAX); + rread = read(fd, buf, SIZE_MAX); + return 0; } diff --git a/tests/misc/oracle/audit-out.json b/tests/misc/oracle/audit-out.json index 346565cf549acdf98e4eec25060052a867e100ba..a8b104f9be78dc2ab732dd1655dcd1da30bfa25c 100644 --- a/tests/misc/oracle/audit-out.json +++ b/tests/misc/oracle/audit-out.json @@ -38,9 +38,9 @@ "warning-categories": { "enabled": [ "*", "alarm", "builtins", "builtins:missing-spec", - "builtins:override", "experimental", "libc", "libc:unsupported-spec", - "locals-escaping", "loop-unroll", "malloc", "malloc:imprecise", - "signed-overflow", "taint", "unknown-size" + "builtins:override", "ensures-false", "experimental", "libc", + "libc:unsupported-spec", "locals-escaping", "loop-unroll", "malloc", + "malloc:imprecise", "signed-overflow", "taint", "unknown-size" ], "disabled": [ "garbled-mix", "invalid-assigns", "loop-unroll:auto", diff --git a/tests/pdg/oracle/bts1194.res.oracle b/tests/pdg/oracle/bts1194.res.oracle index 145aeb752d3a920752391a5eaaa261f9a2e3e284..1af129e7a33f4659fae790fd9894b9c1db5be0d0 100644 --- a/tests/pdg/oracle/bts1194.res.oracle +++ b/tests/pdg/oracle/bts1194.res.oracle @@ -213,10 +213,10 @@ Y ∈ {0} [eva] computing for function f_slice_1 <- main. Called from bts1194.c:32. -[eva] computing for function input <- f_slice_1 <- main. - Called from bts1194.c:13. [kernel:annot:missing-spec] bts1194.c:13: Warning: Neither code nor specification for function input, generating default assigns from the prototype +[eva] computing for function input <- f_slice_1 <- main. + Called from bts1194.c:13. [eva] using specification for function input [eva] Done for function input [eva:alarm] bts1194.c:17: Warning: assertion got status unknown. diff --git a/tests/pdg/oracle/no_body.res.oracle b/tests/pdg/oracle/no_body.res.oracle index cbceb964eb12fbaa49587302d2283bfe7f6e3654..f65d81c52ff573d8b4deff6e9968abe6004ea706 100644 --- a/tests/pdg/oracle/no_body.res.oracle +++ b/tests/pdg/oracle/no_body.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization G ∈ {0} -[eva] computing for function f <- main. - Called from no_body.c:24. [kernel:annot:missing-spec] no_body.c:24: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from no_body.c:24. [eva] using specification for function f [eva] Done for function f [eva] computing for function loop <- main. diff --git a/tests/pdg/oracle/pb_infinite_loop.2.res.oracle b/tests/pdg/oracle/pb_infinite_loop.2.res.oracle index 630316bb7ff028f2aa704681ff10def50844de5a..70e67333d4cf25a264fb22ebbd70e1ac5c76a12e 100644 --- a/tests/pdg/oracle/pb_infinite_loop.2.res.oracle +++ b/tests/pdg/oracle/pb_infinite_loop.2.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization G ∈ [--..--] -[eva] computing for function exit <- test_exit. - Called from pb_infinite_loop.c:48. [kernel:annot:missing-spec] pb_infinite_loop.c:48: Warning: Neither code nor specification for function exit, generating default assigns from the prototype +[eva] computing for function exit <- test_exit. + Called from pb_infinite_loop.c:48. [eva] using specification for function exit [eva] Done for function exit [eva] Recording results for test_exit diff --git a/tests/pdg/oracle/top_pdg_input.res.oracle b/tests/pdg/oracle/top_pdg_input.res.oracle index 4560b0573061290b9ec67795f6988d164a980fc6..165188ac12681c9aa1eb12dc47eef6fc7855215e 100644 --- a/tests/pdg/oracle/top_pdg_input.res.oracle +++ b/tests/pdg/oracle/top_pdg_input.res.oracle @@ -271,10 +271,6 @@ Cannot filter: dumping raw memory (including unchanged variables) j; tmp [inout] Inputs for function main_asm: \nothing -[inout] Out (internal) for function no_results: - __retres -[inout] Inputs for function no_results: - \nothing [pdg] computing for function fun_asm [pdg] top_pdg_input.c:45: Warning: Ignoring inline assembly code [pdg] done for function fun_asm diff --git a/tests/pdg/oracle/variadic.res.oracle b/tests/pdg/oracle/variadic.res.oracle index 4557ce0ab0dd6b19ee856acfaf566f2d8344cab4..2ff0dc65eba330eaff972dff1d8bfb863dad12df 100644 --- a/tests/pdg/oracle/variadic.res.oracle +++ b/tests/pdg/oracle/variadic.res.oracle @@ -6,10 +6,10 @@ [eva] computing for function f1 <- main. Called from variadic.c:37. -[eva] computing for function lib_f <- f1 <- main. - Called from variadic.c:23. [kernel:annot:missing-spec] variadic.c:23: Warning: Neither code nor specification for function lib_f, generating default assigns from the prototype +[eva] computing for function lib_f <- f1 <- main. + Called from variadic.c:23. [eva] using specification for function lib_f [eva] Done for function lib_f [eva] Recording results for f1 diff --git a/tests/scope/oracle/bts383.res.oracle b/tests/scope/oracle/bts383.res.oracle index 28b7158a7c81c8e3cfcb75761b2623a177c214a5..5800bac5891a9bec7ec03be35240d922082f7cca 100644 --- a/tests/scope/oracle/bts383.res.oracle +++ b/tests/scope/oracle/bts383.res.oracle @@ -38,10 +38,10 @@ Called from bts383.c:62. [eva:alarm] bts383.c:35: Warning: out of bounds read. assert \valid_read(value); [eva:alarm] bts383.c:36: Warning: out of bounds read. assert \valid_read(value); -[eva] computing for function out_char <- out_string <- main. - Called from bts383.c:36. [kernel:annot:missing-spec] bts383.c:36: Warning: Neither code nor specification for function out_char, generating default assigns from the prototype +[eva] computing for function out_char <- out_string <- main. + Called from bts383.c:36. [eva] using specification for function out_char [eva] Done for function out_char [eva] bts383.c:35: starting to merge loop iterations diff --git a/tests/slicing/oracle/bts1768.res.oracle b/tests/slicing/oracle/bts1768.res.oracle index 3a40e1f72cfdd0497f04c3a4a40fd43a0047bc6c..b9ebf7ff3bdbeb98fb1c7e6b59e1ba898e36792f 100644 --- a/tests/slicing/oracle/bts1768.res.oracle +++ b/tests/slicing/oracle/bts1768.res.oracle @@ -10,10 +10,10 @@ step ∈ {0} [eva] computing for function lecture <- main. Called from bts1768.i:45. -[eva] computing for function choisir <- lecture <- main. - Called from bts1768.i:18. [kernel] bts1768.i:18: Warning: No code nor implicit assigns clause for function choisir, generating default assigns from the prototype +[eva] computing for function choisir <- lecture <- main. + Called from bts1768.i:18. [eva] using specification for function choisir [eva] Done for function choisir [eva] Recording results for lecture diff --git a/tests/slicing/oracle/bts709.res.oracle b/tests/slicing/oracle/bts709.res.oracle index eeb349a839c18ef29ec2b3fce4e7dca38cc12998..8230e738d1b9a9e282706d7e5e2bde3e68d37a03 100644 --- a/tests/slicing/oracle/bts709.res.oracle +++ b/tests/slicing/oracle/bts709.res.oracle @@ -9,10 +9,10 @@ var2 IN {0} [eva] computing for function inputsOf_testcase_func <- main. Called from bts709.c:47. -[eva] computing for function nondet_int <- inputsOf_testcase_func <- main. - Called from bts709.c:55. [kernel:annot:missing-spec] bts709.c:55: Warning: Neither code nor specification for function nondet_int, generating default assigns from the prototype +[eva] computing for function nondet_int <- inputsOf_testcase_func <- main. + Called from bts709.c:55. [eva] using specification for function nondet_int [eva] Done for function nondet_int [eva] computing for function nondet_int <- inputsOf_testcase_func <- main. diff --git a/tests/slicing/oracle/combine.res.oracle b/tests/slicing/oracle/combine.res.oracle index a9894ef7c846fce6d6a1069847511b0912c64183..59b371fa22936b89432dee3c3dd180b20291895f 100644 --- a/tests/slicing/oracle/combine.res.oracle +++ b/tests/slicing/oracle/combine.res.oracle @@ -121,10 +121,10 @@ int main(int x) [eva] computing for function f <- main. Called from combine.i:24. -[eva] computing for function g <- f <- main. - Called from combine.i:17. [kernel:annot:missing-spec] combine.i:17: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- f <- main. + Called from combine.i:17. [eva] using specification for function g [eva] Done for function g [eva] Recording results for f diff --git a/tests/slicing/oracle/filter.res.oracle b/tests/slicing/oracle/filter.res.oracle index 3d965436dc7a3a1ee3df68d55401c0c142a4c6b3..f4a04eb5b5eb35e339107a6837a5007ba5c4a40e 100644 --- a/tests/slicing/oracle/filter.res.oracle +++ b/tests/slicing/oracle/filter.res.oracle @@ -11,10 +11,10 @@ [eva] Done for function bts806 [eva] computing for function unspec <- main. Called from filter.i:43. -[eva] computing for function f <- unspec <- main. - Called from filter.i:36. [kernel:annot:missing-spec] filter.i:36: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- unspec <- main. + Called from filter.i:36. [eva] using specification for function f [eva] Done for function f [eva] Recording results for unspec diff --git a/tests/slicing/oracle/loops.15.res.oracle b/tests/slicing/oracle/loops.15.res.oracle index 16dd3f30158a46fd9c7adbdb72fd0b6762691220..eec7e4e722e0f6d94f986ee16dd341399f5aa0de 100644 --- a/tests/slicing/oracle/loops.15.res.oracle +++ b/tests/slicing/oracle/loops.15.res.oracle @@ -11,10 +11,10 @@ Z ∈ [--..--] [eva] loops.i:68: assertion got status valid. [eva] loops.i:66: starting to merge loop iterations -[eva] computing for function stop <- stop_f1. - Called from loops.i:70. [kernel:annot:missing-spec] loops.i:70: Warning: Neither code nor specification for function stop, generating default assigns from the prototype +[eva] computing for function stop <- stop_f1. + Called from loops.i:70. [eva] using specification for function stop [eva] Done for function stop [eva] Recording results for stop_f1 diff --git a/tests/slicing/oracle/loops.16.res.oracle b/tests/slicing/oracle/loops.16.res.oracle index 3fd8813c21437c89615b4e571cae3dc0621375e8..bea08b5034d7a62fa70d6672bc961b9844d392e4 100644 --- a/tests/slicing/oracle/loops.16.res.oracle +++ b/tests/slicing/oracle/loops.16.res.oracle @@ -11,10 +11,10 @@ Z ∈ [--..--] [eva] loops.i:68: assertion got status valid. [eva] loops.i:66: starting to merge loop iterations -[eva] computing for function stop <- stop_f1. - Called from loops.i:70. [kernel:annot:missing-spec] loops.i:70: Warning: Neither code nor specification for function stop, generating default assigns from the prototype +[eva] computing for function stop <- stop_f1. + Called from loops.i:70. [eva] using specification for function stop [eva] Done for function stop [eva] Recording results for stop_f1 diff --git a/tests/slicing/oracle/loops.17.res.oracle b/tests/slicing/oracle/loops.17.res.oracle index aa15e9fe124a5770fe1936ed9c8ef0f200e1c07d..0537db0b91b439f6d941bd35953f79ae36c7ac50 100644 --- a/tests/slicing/oracle/loops.17.res.oracle +++ b/tests/slicing/oracle/loops.17.res.oracle @@ -11,10 +11,10 @@ Z ∈ [--..--] [eva:alarm] loops.i:82: Warning: signed overflow. assert c + 10 ≤ 2147483647; [eva:alarm] loops.i:88: Warning: assertion got status unknown. -[eva] computing for function stop <- stop_f2. - Called from loops.i:89. [kernel:annot:missing-spec] loops.i:89: Warning: Neither code nor specification for function stop, generating default assigns from the prototype +[eva] computing for function stop <- stop_f2. + Called from loops.i:89. [eva] using specification for function stop [eva] Done for function stop [eva] Recording results for stop_f2 diff --git a/tests/slicing/oracle/loops.18.res.oracle b/tests/slicing/oracle/loops.18.res.oracle index 04dc49b1ee3eb3b6b7eb0101612a851b90c3afea..70c363c51dfa1f85af6e0ac42d201e7a7fb24902 100644 --- a/tests/slicing/oracle/loops.18.res.oracle +++ b/tests/slicing/oracle/loops.18.res.oracle @@ -11,10 +11,10 @@ Z ∈ [--..--] [eva:alarm] loops.i:82: Warning: signed overflow. assert c + 10 ≤ 2147483647; [eva:alarm] loops.i:88: Warning: assertion got status unknown. -[eva] computing for function stop <- stop_f2. - Called from loops.i:89. [kernel:annot:missing-spec] loops.i:89: Warning: Neither code nor specification for function stop, generating default assigns from the prototype +[eva] computing for function stop <- stop_f2. + Called from loops.i:89. [eva] using specification for function stop [eva] Done for function stop [eva] Recording results for stop_f2 diff --git a/tests/slicing/oracle/min_call.res.oracle b/tests/slicing/oracle/min_call.res.oracle index f3607c3ab3b4940722b6795cd9097a58361a414b..b13c5f6f59cd8e63d0a775d0a152267be24013e2 100644 --- a/tests/slicing/oracle/min_call.res.oracle +++ b/tests/slicing/oracle/min_call.res.oracle @@ -10,16 +10,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -56,10 +56,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/ptr_fct.res.oracle b/tests/slicing/oracle/ptr_fct.res.oracle index 3d93973ee4d712091d3a3481daadce5f39f5140c..6b36f47ccf37855a27b08a2cf1d3a1938ded6f75 100644 --- a/tests/slicing/oracle/ptr_fct.res.oracle +++ b/tests/slicing/oracle/ptr_fct.res.oracle @@ -8,10 +8,10 @@ ptf ∈ {0} [eva] computing for function g <- h. Called from ptr_fct.i:23. -[eva] computing for function f2 <- g <- h. - Called from ptr_fct.i:17. [kernel:annot:missing-spec] ptr_fct.i:17: Warning: Neither code nor specification for function f2, generating default assigns from the prototype +[eva] computing for function f2 <- g <- h. + Called from ptr_fct.i:17. [eva] using specification for function f2 [eva] Done for function f2 [eva] computing for function f1 <- g <- h. diff --git a/tests/slicing/oracle/select_by_annot.0.res.oracle b/tests/slicing/oracle/select_by_annot.0.res.oracle index 31ce22ade863eab258bb37862d1de367a96ec7f3..8d7e7082e3c68493a11f27374b28923f8223180b 100644 --- a/tests/slicing/oracle/select_by_annot.0.res.oracle +++ b/tests/slicing/oracle/select_by_annot.0.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.1.res.oracle b/tests/slicing/oracle/select_by_annot.1.res.oracle index c0f3575f5dc322dc8ddc849af89fecdd2f29787c..ae07dade26d480fce1d7cf3ee17ffda866ceea2f 100644 --- a/tests/slicing/oracle/select_by_annot.1.res.oracle +++ b/tests/slicing/oracle/select_by_annot.1.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.10.res.oracle b/tests/slicing/oracle/select_by_annot.10.res.oracle index c30f26887f6c5c0f036094807aed8fdbd49a114e..34f900b14e6424248c3a94c0518b5ce35c7d215f 100644 --- a/tests/slicing/oracle/select_by_annot.10.res.oracle +++ b/tests/slicing/oracle/select_by_annot.10.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.11.res.oracle b/tests/slicing/oracle/select_by_annot.11.res.oracle index 5b27209920b895c89f8c23bb3135d9795246fff3..9b3fce6ec83a8544876c066e958976b8a785c42e 100644 --- a/tests/slicing/oracle/select_by_annot.11.res.oracle +++ b/tests/slicing/oracle/select_by_annot.11.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.12.res.oracle b/tests/slicing/oracle/select_by_annot.12.res.oracle index 0c6fe54f4cf7193a2ad7426653f3d44ee3dd95f9..762c51f3171fad5510ae4f93098fcb85a30ae48b 100644 --- a/tests/slicing/oracle/select_by_annot.12.res.oracle +++ b/tests/slicing/oracle/select_by_annot.12.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.13.res.oracle b/tests/slicing/oracle/select_by_annot.13.res.oracle index 8f680bd8056d3f27317815d56659cba58465bbcd..98dd4ebe7bdc9857052b79c9db5c412734bf9593 100644 --- a/tests/slicing/oracle/select_by_annot.13.res.oracle +++ b/tests/slicing/oracle/select_by_annot.13.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.14.res.oracle b/tests/slicing/oracle/select_by_annot.14.res.oracle index 69d8673daf166031a605627daf7ea23bf6e550b7..0a2424c7fb144a6ee4b07f112186d748e5cc4735 100644 --- a/tests/slicing/oracle/select_by_annot.14.res.oracle +++ b/tests/slicing/oracle/select_by_annot.14.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.2.res.oracle b/tests/slicing/oracle/select_by_annot.2.res.oracle index 2447ad2d3380583eb6259cbc192eb559dc8606f5..169060a52c2f9bf8462882d4d3ebbaad08b07050 100644 --- a/tests/slicing/oracle/select_by_annot.2.res.oracle +++ b/tests/slicing/oracle/select_by_annot.2.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.3.res.oracle b/tests/slicing/oracle/select_by_annot.3.res.oracle index 25a50f5cd59edd247f74833690d9f3bbb92a43b2..3afd30f22fd2fc6c6eaf7547a8db88211208d942 100644 --- a/tests/slicing/oracle/select_by_annot.3.res.oracle +++ b/tests/slicing/oracle/select_by_annot.3.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.4.res.oracle b/tests/slicing/oracle/select_by_annot.4.res.oracle index 8d2642c6fa807da28c38c401e1b4c12ba49dbf92..6997ef7e7a89dc508c40abde0826544c0163a20b 100644 --- a/tests/slicing/oracle/select_by_annot.4.res.oracle +++ b/tests/slicing/oracle/select_by_annot.4.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.5.res.oracle b/tests/slicing/oracle/select_by_annot.5.res.oracle index 165cc861ab72f82a834e850c7a4f33b9433b2fe0..324e00126ff00f1c013cfab833844601bddd6871 100644 --- a/tests/slicing/oracle/select_by_annot.5.res.oracle +++ b/tests/slicing/oracle/select_by_annot.5.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.6.res.oracle b/tests/slicing/oracle/select_by_annot.6.res.oracle index fb469fe2139a5a8b7b8bdc417b29db69356e5965..233dfb495a340d13e22b8bd006b1cd71aa50b730 100644 --- a/tests/slicing/oracle/select_by_annot.6.res.oracle +++ b/tests/slicing/oracle/select_by_annot.6.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.7.res.oracle b/tests/slicing/oracle/select_by_annot.7.res.oracle index 540bcb17efb6a9e698444e3b15ea6bb2c7dbf3e4..87bb4419e117e5cf001669267484e66ee112728c 100644 --- a/tests/slicing/oracle/select_by_annot.7.res.oracle +++ b/tests/slicing/oracle/select_by_annot.7.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.8.res.oracle b/tests/slicing/oracle/select_by_annot.8.res.oracle index 31a3e7b24478f1607ad9dd209a798ced369857cd..e92d795a5c11d703abcb62c7229b145306f29c63 100644 --- a/tests/slicing/oracle/select_by_annot.8.res.oracle +++ b/tests/slicing/oracle/select_by_annot.8.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_by_annot.9.res.oracle b/tests/slicing/oracle/select_by_annot.9.res.oracle index 8140a0c2883108a82fbc579a14c6cd12742f03fd..a3c5b6b83688036eadee760d98c6de3e4a24e8ed 100644 --- a/tests/slicing/oracle/select_by_annot.9.res.oracle +++ b/tests/slicing/oracle/select_by_annot.9.res.oracle @@ -18,10 +18,10 @@ signed overflow. assert S.a + a ≤ 2147483647; [eva] Recording results for modifS [eva] Done for function modifS -[eva] computing for function new_int <- main. - Called from select_by_annot.i:140. [kernel:annot:missing-spec] select_by_annot.i:140: Warning: Neither code nor specification for function new_int, generating default assigns from the prototype +[eva] computing for function new_int <- main. + Called from select_by_annot.i:140. [eva] using specification for function new_int [eva] Done for function new_int [eva] computing for function f1 <- main. diff --git a/tests/slicing/oracle/select_calls.0.res.oracle b/tests/slicing/oracle/select_calls.0.res.oracle index 94b3e49273274813cf5e473e27472d797f7ec762..a684da35d348c819ce341aba38bfb7e132ee2b74 100644 --- a/tests/slicing/oracle/select_calls.0.res.oracle +++ b/tests/slicing/oracle/select_calls.0.res.oracle @@ -6,19 +6,19 @@ [eva:initial-state] Values of globals at initialization c ∈ [--..--] d ∈ [--..--] -[eva] computing for function send <- f. - Called from select_calls.i:22. [kernel:annot:missing-spec] select_calls.i:22: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f. + Called from select_calls.i:22. [eva] using specification for function send [eva] Done for function send [eva] computing for function send <- f. Called from select_calls.i:23. [eva] Done for function send -[eva] computing for function crypt <- f. - Called from select_calls.i:24. [kernel:annot:missing-spec] select_calls.i:24: Warning: Neither code nor specification for function crypt, generating default assigns from the prototype +[eva] computing for function crypt <- f. + Called from select_calls.i:24. [eva] using specification for function crypt [eva] Done for function crypt [eva] computing for function send <- f. @@ -27,10 +27,10 @@ [eva] computing for function send <- f. Called from select_calls.i:28. [eva] Done for function send -[eva] computing for function uncrypt <- f. - Called from select_calls.i:30. [kernel:annot:missing-spec] select_calls.i:30: Warning: Neither code nor specification for function uncrypt, generating default assigns from the prototype +[eva] computing for function uncrypt <- f. + Called from select_calls.i:30. [eva] using specification for function uncrypt [eva] Done for function uncrypt [eva] computing for function send <- f. diff --git a/tests/slicing/oracle/select_calls.1.res.oracle b/tests/slicing/oracle/select_calls.1.res.oracle index 7a93b917c1ac311b745dc0f3d6b433818f1268ee..9d99c35a72c437ac31e3e1e1388c277c296e64e7 100644 --- a/tests/slicing/oracle/select_calls.1.res.oracle +++ b/tests/slicing/oracle/select_calls.1.res.oracle @@ -6,10 +6,10 @@ [eva:initial-state] Values of globals at initialization c ∈ [--..--] d ∈ [--..--] -[eva] computing for function nothing <- g. - Called from select_calls.i:42. [kernel:annot:missing-spec] select_calls.i:42: Warning: Neither code nor specification for function nothing, generating default assigns from the prototype +[eva] computing for function nothing <- g. + Called from select_calls.i:42. [eva] using specification for function nothing [eva] Done for function nothing [eva] Recording results for g diff --git a/tests/slicing/oracle/select_return.0.res.oracle b/tests/slicing/oracle/select_return.0.res.oracle index 8e3f0312d8029824207255aef5444406e99e9b50..c11f145c96547f4c50ce6114b7d7cc30bc17c10d 100644 --- a/tests/slicing/oracle/select_return.0.res.oracle +++ b/tests/slicing/oracle/select_return.0.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.1.res.oracle b/tests/slicing/oracle/select_return.1.res.oracle index 85264a8d545404c7d6e0a1f26ffe35ffabd0b1bf..9c6ec7fbefb3098d928fe89409980bda00eccc58 100644 --- a/tests/slicing/oracle/select_return.1.res.oracle +++ b/tests/slicing/oracle/select_return.1.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.10.res.oracle b/tests/slicing/oracle/select_return.10.res.oracle index dcdfd537935503464f352abdb8a50f0ac9c2c826..2e7bb25265f9543976a6f12f6bee99da0be882a0 100644 --- a/tests/slicing/oracle/select_return.10.res.oracle +++ b/tests/slicing/oracle/select_return.10.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.11.res.oracle b/tests/slicing/oracle/select_return.11.res.oracle index cbd031e0a0c408883af1bff8a4116dc0b05bac31..e1608c0ea0a8deec6ac5f60af4786efd92ab3a2c 100644 --- a/tests/slicing/oracle/select_return.11.res.oracle +++ b/tests/slicing/oracle/select_return.11.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.12.res.oracle b/tests/slicing/oracle/select_return.12.res.oracle index 1359b8875417bbe9e020d1f1fe7f6f885d7f4c04..d05d1bf75388534ac46553c2749f615ef0358a4c 100644 --- a/tests/slicing/oracle/select_return.12.res.oracle +++ b/tests/slicing/oracle/select_return.12.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.13.res.oracle b/tests/slicing/oracle/select_return.13.res.oracle index e1b8f746bbeb4fb79a80ee506af233834d2a44cc..3e93305f88758089dfd68cddb5c2dad84b61fe75 100644 --- a/tests/slicing/oracle/select_return.13.res.oracle +++ b/tests/slicing/oracle/select_return.13.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.14.res.oracle b/tests/slicing/oracle/select_return.14.res.oracle index 19c955fa3e88eb6ff2894f6542b3f726bfa28629..78eee4e08b70f6742b2ea85c701c427cc1d91cd7 100644 --- a/tests/slicing/oracle/select_return.14.res.oracle +++ b/tests/slicing/oracle/select_return.14.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.15.res.oracle b/tests/slicing/oracle/select_return.15.res.oracle index f1324cfe026e73d64021f6e3a28b1570eb12921f..2fe88bed783cb40305be67f1bedfb8ec7a5e650a 100644 --- a/tests/slicing/oracle/select_return.15.res.oracle +++ b/tests/slicing/oracle/select_return.15.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.16.res.oracle b/tests/slicing/oracle/select_return.16.res.oracle index 75cb38c7d7f7f327e2ecc75735bfa425702bba73..d12c38a5def65774d149656ca9a641fd955d1ac1 100644 --- a/tests/slicing/oracle/select_return.16.res.oracle +++ b/tests/slicing/oracle/select_return.16.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.17.res.oracle b/tests/slicing/oracle/select_return.17.res.oracle index 60119b1ea8b86a0c01dcbfda9e987d21a4912761..9d0c0e93a698cce3c2eaa9e0a3b7c8691f5eea1f 100644 --- a/tests/slicing/oracle/select_return.17.res.oracle +++ b/tests/slicing/oracle/select_return.17.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.18.res.oracle b/tests/slicing/oracle/select_return.18.res.oracle index a1023b621f83c5888ca889df20c9f242cbd7255a..f2116fc192526cf851f636d405e617254d18e374 100644 --- a/tests/slicing/oracle/select_return.18.res.oracle +++ b/tests/slicing/oracle/select_return.18.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.19.res.oracle b/tests/slicing/oracle/select_return.19.res.oracle index 3df04b0b9e8cad44e7424b9df84f2f3c8d688818..ca61ac7c11d4e94706315ebb24a4dcae4b37a32e 100644 --- a/tests/slicing/oracle/select_return.19.res.oracle +++ b/tests/slicing/oracle/select_return.19.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.2.res.oracle b/tests/slicing/oracle/select_return.2.res.oracle index 479a7c97c1a8645423e66d9ddb09483ac4fac8a7..12e4ac0f72be9bb0c328c7b5ffe8e7ee8fc92f6c 100644 --- a/tests/slicing/oracle/select_return.2.res.oracle +++ b/tests/slicing/oracle/select_return.2.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.20.res.oracle b/tests/slicing/oracle/select_return.20.res.oracle index af21538130724556d55802fade61f07027acb07a..112c5f5bfe9daaae6f4a0c6d340a8bed4f4f1ca1 100644 --- a/tests/slicing/oracle/select_return.20.res.oracle +++ b/tests/slicing/oracle/select_return.20.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.21.res.oracle b/tests/slicing/oracle/select_return.21.res.oracle index be094adf73b8f896253f2a9b03190c4e5e6fff3b..fc7b7263a782cac7b7a43e2648a76856c9a41910 100644 --- a/tests/slicing/oracle/select_return.21.res.oracle +++ b/tests/slicing/oracle/select_return.21.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.3.res.oracle b/tests/slicing/oracle/select_return.3.res.oracle index 1dc96345e15dc2a4b95869aef28dce9455cb77be..9812edcd573de0eb8a5dcce0fdf3242713794af0 100644 --- a/tests/slicing/oracle/select_return.3.res.oracle +++ b/tests/slicing/oracle/select_return.3.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.4.res.oracle b/tests/slicing/oracle/select_return.4.res.oracle index 3a8819580ec3c90411f89b31c0e4d8a207b258dd..54256a9999125e620220427a33c4e2925f0ef150 100644 --- a/tests/slicing/oracle/select_return.4.res.oracle +++ b/tests/slicing/oracle/select_return.4.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.5.res.oracle b/tests/slicing/oracle/select_return.5.res.oracle index da7288950985eff6f33ddb9c1455acaf5ef0aab8..4f5db2fd09eca3dfe8a0201723d86780d23d5257 100644 --- a/tests/slicing/oracle/select_return.5.res.oracle +++ b/tests/slicing/oracle/select_return.5.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.6.res.oracle b/tests/slicing/oracle/select_return.6.res.oracle index 206f26b5c652b7295eb1071f2c6108f28306001f..49367975721c747f4f69145fc1a06a93dda92f74 100644 --- a/tests/slicing/oracle/select_return.6.res.oracle +++ b/tests/slicing/oracle/select_return.6.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.7.res.oracle b/tests/slicing/oracle/select_return.7.res.oracle index 166d4eb39460d432449c3b437f89a4b216f9a358..805198cb1ee88eca06a4ebe6ce714073ec356dca 100644 --- a/tests/slicing/oracle/select_return.7.res.oracle +++ b/tests/slicing/oracle/select_return.7.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.8.res.oracle b/tests/slicing/oracle/select_return.8.res.oracle index 7a3e2021331fc0a0b41d606ebb7adc1584e6378f..46f7ae572759a6c7d306a249cb2184777a73eabd 100644 --- a/tests/slicing/oracle/select_return.8.res.oracle +++ b/tests/slicing/oracle/select_return.8.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return.9.res.oracle b/tests/slicing/oracle/select_return.9.res.oracle index 08c18f52960abe07bedb53b5d8cf57e75d5c4302..cefcbc973ebe0865baa8dfcc2a1834618960f06d 100644 --- a/tests/slicing/oracle/select_return.9.res.oracle +++ b/tests/slicing/oracle/select_return.9.res.oracle @@ -11,16 +11,16 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return.i:44. -[eva] computing for function get <- k <- g. - Called from select_return.i:35. [kernel:annot:missing-spec] select_return.i:35: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return.i:35. [eva] using specification for function get [eva] Done for function get -[eva] computing for function send_bis <- k <- g. - Called from select_return.i:39. [kernel:annot:missing-spec] select_return.i:39: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k <- g. + Called from select_return.i:39. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k @@ -57,10 +57,10 @@ [eva] Done for function send_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return.i:53. [kernel:annot:missing-spec] select_return.i:53: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return.i:53. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.0.res.oracle b/tests/slicing/oracle/select_return_bis.0.res.oracle index 3f7c4dea6927a05468a0f96dd08061e4171f998c..8ea8588123349807331da21444ad76db30e4a29d 100644 --- a/tests/slicing/oracle/select_return_bis.0.res.oracle +++ b/tests/slicing/oracle/select_return_bis.0.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.1.res.oracle b/tests/slicing/oracle/select_return_bis.1.res.oracle index c3940889b4c4eb2a2c3ecfd986c86c5d75eda8ec..1985843e0c856671e582c9b8b4a053bc292fede0 100644 --- a/tests/slicing/oracle/select_return_bis.1.res.oracle +++ b/tests/slicing/oracle/select_return_bis.1.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.10.res.oracle b/tests/slicing/oracle/select_return_bis.10.res.oracle index ea0823f9f32639ec35318dd1e686da5c697d22d1..e32eca9c3afcf0fba7d02dc1aa2be8f452f43b57 100644 --- a/tests/slicing/oracle/select_return_bis.10.res.oracle +++ b/tests/slicing/oracle/select_return_bis.10.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.2.res.oracle b/tests/slicing/oracle/select_return_bis.2.res.oracle index d057238968c7951d74fceffe308cc2e5d37da6ed..7373b5277664370907b74738fc337fff836d4237 100644 --- a/tests/slicing/oracle/select_return_bis.2.res.oracle +++ b/tests/slicing/oracle/select_return_bis.2.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.3.res.oracle b/tests/slicing/oracle/select_return_bis.3.res.oracle index da97a2aa60c105fb8d421a78abec6bb6064441b8..92082b533a77c7a257928f2a408552424230dbb6 100644 --- a/tests/slicing/oracle/select_return_bis.3.res.oracle +++ b/tests/slicing/oracle/select_return_bis.3.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.4.res.oracle b/tests/slicing/oracle/select_return_bis.4.res.oracle index 1447173a96e30c85ea12d0d1be2fa44262f9b7d3..4a345c49e0b0fc9e47497c43bf4142b1038462ae 100644 --- a/tests/slicing/oracle/select_return_bis.4.res.oracle +++ b/tests/slicing/oracle/select_return_bis.4.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.5.res.oracle b/tests/slicing/oracle/select_return_bis.5.res.oracle index d85a5be0f6b9c0bebf1728a5dfce808a8986be66..fc53a600ed4dc48067618fe1005b7498cbaf1300 100644 --- a/tests/slicing/oracle/select_return_bis.5.res.oracle +++ b/tests/slicing/oracle/select_return_bis.5.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.6.res.oracle b/tests/slicing/oracle/select_return_bis.6.res.oracle index fc50b4155ac11681c74a0440f9b8f6dbba2fb428..a31e484106f52830ef839784d4e6aae2eaff223c 100644 --- a/tests/slicing/oracle/select_return_bis.6.res.oracle +++ b/tests/slicing/oracle/select_return_bis.6.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.7.res.oracle b/tests/slicing/oracle/select_return_bis.7.res.oracle index 0cbccc1d95c6dc0210546787ce22961315395c98..59ffe732a6ad243c161c54e6f25438d85d449fa9 100644 --- a/tests/slicing/oracle/select_return_bis.7.res.oracle +++ b/tests/slicing/oracle/select_return_bis.7.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.8.res.oracle b/tests/slicing/oracle/select_return_bis.8.res.oracle index 578fb7a7f41e9c184a85893aba3a84d3643ce44a..956b521ba11c369ef2ab05c5a5902722fb7d6fb6 100644 --- a/tests/slicing/oracle/select_return_bis.8.res.oracle +++ b/tests/slicing/oracle/select_return_bis.8.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/select_return_bis.9.res.oracle b/tests/slicing/oracle/select_return_bis.9.res.oracle index c0c04e4202fef80c95ceeccb2d9d3aeaafdd0cb1..7d550fad782ab271bbcf82ea51f7114013fa0f2d 100644 --- a/tests/slicing/oracle/select_return_bis.9.res.oracle +++ b/tests/slicing/oracle/select_return_bis.9.res.oracle @@ -11,18 +11,18 @@ I ∈ [--..--] [eva] computing for function k <- g. Called from select_return_bis.i:35. -[eva] computing for function get <- k <- g. - Called from select_return_bis.i:28. [kernel:annot:missing-spec] select_return_bis.i:28: Warning: Neither code nor specification for function get, generating default assigns from the prototype +[eva] computing for function get <- k <- g. + Called from select_return_bis.i:28. [eva] using specification for function get [eva] Done for function get [eva] computing for function k_bis <- k <- g. Called from select_return_bis.i:30. -[eva] computing for function send_bis <- k_bis <- k <- g. - Called from select_return_bis.i:24. [kernel:annot:missing-spec] select_return_bis.i:24: Warning: Neither code nor specification for function send_bis, generating default assigns from the prototype +[eva] computing for function send_bis <- k_bis <- k <- g. + Called from select_return_bis.i:24. [eva] using specification for function send_bis [eva] Done for function send_bis [eva] Recording results for k_bis @@ -61,10 +61,10 @@ [eva] select_return_bis.i:30: Reusing old results for call to k_bis [eva] Recording results for k [eva] Done for function k -[eva] computing for function send <- f <- g. - Called from select_return_bis.i:44. [kernel:annot:missing-spec] select_return_bis.i:44: Warning: Neither code nor specification for function send, generating default assigns from the prototype +[eva] computing for function send <- f <- g. + Called from select_return_bis.i:44. [eva] using specification for function send [eva] Done for function send [eva] Recording results for f diff --git a/tests/slicing/oracle/slice_no_body.res.oracle b/tests/slicing/oracle/slice_no_body.res.oracle index ddb4f878d25fd38dae70874ab3737a90d4ed490b..922e16a864861255f4ad301a02f9f0be1f1abad3 100644 --- a/tests/slicing/oracle/slice_no_body.res.oracle +++ b/tests/slicing/oracle/slice_no_body.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization G ∈ [--..--] -[eva] computing for function f <- h. - Called from slice_no_body.i:21. [kernel:annot:missing-spec] slice_no_body.i:21: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- h. + Called from slice_no_body.i:21. [eva] using specification for function f [eva] Done for function f [eva] computing for function f <- h. @@ -51,10 +51,10 @@ \result FROM \nothing [from] ====== END OF DEPENDENCIES ====== [slicing] initializing slicing ... -[pdg] computing for function h -[pdg] done for function h [pdg] computing for function g [pdg] done for function g +[pdg] computing for function h +[pdg] done for function h int G; /*@ assigns \result; assigns \result \from a; */ @@ -120,7 +120,7 @@ Print slice = h_slice_1: } Slicing project worklist [default] = -[h_slice_1 = change_call for call 16 -> g_slice_1][g_slice_1 = change_call for call 5 -> (src:f)][h_slice_1 = change_call for call 13 -> (src:f)][h_slice_1 = change_call for call 12 -> (src:f)][h_slice_1 = change_call for call 11 -> (src:f)][h_slice_1 = change_call for call 10 -> (src:f)] +[h_slice_1 = change_call for call 13 -> (src:f)][h_slice_1 = change_call for call 12 -> (src:f)][h_slice_1 = change_call for call 11 -> (src:f)][h_slice_1 = change_call for call 10 -> (src:f)][h_slice_1 = change_call for call 16 -> g_slice_1][g_slice_1 = change_call for call 5 -> (src:f)] [slicing] exporting project to 'Sliced code'... [slicing] applying all slicing requests... diff --git a/tests/slicing/oracle/unravel-flavors.0.res.oracle b/tests/slicing/oracle/unravel-flavors.0.res.oracle index b9bdf5dc091f20376705e2042a1f036b167d23dd..3bcb555020cb6c3231d12de2808185c7a9838b11 100644 --- a/tests/slicing/oracle/unravel-flavors.0.res.oracle +++ b/tests/slicing/oracle/unravel-flavors.0.res.oracle @@ -61,10 +61,10 @@ signed overflow. assert yellow + green ≤ 2147483647; [eva] computing for function send1 <- main. Called from unravel-flavors.i:60. -[eva] computing for function printf <- send1 <- main. - Called from unravel-flavors.i:19. [kernel:annot:missing-spec] unravel-flavors.i:19: Warning: Neither code nor specification for function printf, generating default assigns from the prototype +[eva] computing for function printf <- send1 <- main. + Called from unravel-flavors.i:19. [eva] using specification for function printf [eva] Done for function printf [eva] Recording results for send1 diff --git a/tests/slicing/oracle/unravel-flavors.1.res.oracle b/tests/slicing/oracle/unravel-flavors.1.res.oracle index 2499a87e271696fec5e39fe9b448984293157bdd..17186c7cd187ee83e11fe23a7562422a87eeab3d 100644 --- a/tests/slicing/oracle/unravel-flavors.1.res.oracle +++ b/tests/slicing/oracle/unravel-flavors.1.res.oracle @@ -61,10 +61,10 @@ signed overflow. assert yellow + green ≤ 2147483647; [eva] computing for function send1 <- main. Called from unravel-flavors.i:60. -[eva] computing for function printf <- send1 <- main. - Called from unravel-flavors.i:19. [kernel:annot:missing-spec] unravel-flavors.i:19: Warning: Neither code nor specification for function printf, generating default assigns from the prototype +[eva] computing for function printf <- send1 <- main. + Called from unravel-flavors.i:19. [eva] using specification for function printf [eva] Done for function printf [eva] Recording results for send1 diff --git a/tests/slicing/oracle/unravel-flavors.2.res.oracle b/tests/slicing/oracle/unravel-flavors.2.res.oracle index 99c65cccbeaa018f23f297e5a989f47e2e59b777..0402f471ca708f0205f1e2ef4a1de623691d5b6c 100644 --- a/tests/slicing/oracle/unravel-flavors.2.res.oracle +++ b/tests/slicing/oracle/unravel-flavors.2.res.oracle @@ -61,10 +61,10 @@ signed overflow. assert yellow + green ≤ 2147483647; [eva] computing for function send1 <- main. Called from unravel-flavors.i:60. -[eva] computing for function printf <- send1 <- main. - Called from unravel-flavors.i:19. [kernel:annot:missing-spec] unravel-flavors.i:19: Warning: Neither code nor specification for function printf, generating default assigns from the prototype +[eva] computing for function printf <- send1 <- main. + Called from unravel-flavors.i:19. [eva] using specification for function printf [eva] Done for function printf [eva] Recording results for send1 diff --git a/tests/slicing/oracle/unravel-flavors.3.res.oracle b/tests/slicing/oracle/unravel-flavors.3.res.oracle index 06320e6214a02e9f8c3339e0e9d2b20704d336b1..fe639f3a189614c3fa11656ada21f454c1cb0967 100644 --- a/tests/slicing/oracle/unravel-flavors.3.res.oracle +++ b/tests/slicing/oracle/unravel-flavors.3.res.oracle @@ -61,10 +61,10 @@ signed overflow. assert yellow + green ≤ 2147483647; [eva] computing for function send1 <- main. Called from unravel-flavors.i:60. -[eva] computing for function printf <- send1 <- main. - Called from unravel-flavors.i:19. [kernel:annot:missing-spec] unravel-flavors.i:19: Warning: Neither code nor specification for function printf, generating default assigns from the prototype +[eva] computing for function printf <- send1 <- main. + Called from unravel-flavors.i:19. [eva] using specification for function printf [eva] Done for function printf [eva] Recording results for send1 diff --git a/tests/slicing/oracle/unravel-point.0.res.oracle b/tests/slicing/oracle/unravel-point.0.res.oracle index e7cd4149d40dffc78b9c51f33a629696a8c3a103..ac85ebce1875c26d1452683f3c4f8d89ffcb9afb 100644 --- a/tests/slicing/oracle/unravel-point.0.res.oracle +++ b/tests/slicing/oracle/unravel-point.0.res.oracle @@ -36,10 +36,10 @@ signed overflow. assert *y + *x ≤ 2147483647; [eva] computing for function send1 <- main. Called from unravel-point.i:75. -[eva] computing for function printf <- send1 <- main. - Called from unravel-point.i:36. [kernel:annot:missing-spec] unravel-point.i:36: Warning: Neither code nor specification for function printf, generating default assigns from the prototype +[eva] computing for function printf <- send1 <- main. + Called from unravel-point.i:36. [eva] using specification for function printf [eva] Done for function printf [eva] Recording results for send1 diff --git a/tests/slicing/oracle/unravel-point.1.res.oracle b/tests/slicing/oracle/unravel-point.1.res.oracle index eacf84e9425cc9038a2c48e1a080a2fdf6677c96..b51385835fffcd8731380223ea577b4fcaf2a094 100644 --- a/tests/slicing/oracle/unravel-point.1.res.oracle +++ b/tests/slicing/oracle/unravel-point.1.res.oracle @@ -36,10 +36,10 @@ signed overflow. assert *y + *x ≤ 2147483647; [eva] computing for function send1 <- main. Called from unravel-point.i:75. -[eva] computing for function printf <- send1 <- main. - Called from unravel-point.i:36. [kernel:annot:missing-spec] unravel-point.i:36: Warning: Neither code nor specification for function printf, generating default assigns from the prototype +[eva] computing for function printf <- send1 <- main. + Called from unravel-point.i:36. [eva] using specification for function printf [eva] Done for function printf [eva] Recording results for send1 diff --git a/tests/slicing/oracle/unravel-point.2.res.oracle b/tests/slicing/oracle/unravel-point.2.res.oracle index cae8b16117c7b4728aad7a8cad03ced5b2205832..2e29586990b327a64dd22184c3b459f3357622fe 100644 --- a/tests/slicing/oracle/unravel-point.2.res.oracle +++ b/tests/slicing/oracle/unravel-point.2.res.oracle @@ -36,10 +36,10 @@ signed overflow. assert *y + *x ≤ 2147483647; [eva] computing for function send1 <- main. Called from unravel-point.i:75. -[eva] computing for function printf <- send1 <- main. - Called from unravel-point.i:36. [kernel:annot:missing-spec] unravel-point.i:36: Warning: Neither code nor specification for function printf, generating default assigns from the prototype +[eva] computing for function printf <- send1 <- main. + Called from unravel-point.i:36. [eva] using specification for function printf [eva] Done for function printf [eva] Recording results for send1 diff --git a/tests/slicing/oracle/unravel-point.3.res.oracle b/tests/slicing/oracle/unravel-point.3.res.oracle index 762e31c287dbe235d1c4ec7fed1bca56c636182b..75d9af9abc2f2af899622bd58dcfa3dd543ae226 100644 --- a/tests/slicing/oracle/unravel-point.3.res.oracle +++ b/tests/slicing/oracle/unravel-point.3.res.oracle @@ -36,10 +36,10 @@ signed overflow. assert *y + *x ≤ 2147483647; [eva] computing for function send1 <- main. Called from unravel-point.i:75. -[eva] computing for function printf <- send1 <- main. - Called from unravel-point.i:36. [kernel:annot:missing-spec] unravel-point.i:36: Warning: Neither code nor specification for function printf, generating default assigns from the prototype +[eva] computing for function printf <- send1 <- main. + Called from unravel-point.i:36. [eva] using specification for function printf [eva] Done for function printf [eva] Recording results for send1 diff --git a/tests/slicing/oracle/unravel-point.4.res.oracle b/tests/slicing/oracle/unravel-point.4.res.oracle index 3bacc2068096deeb3130c792e45f46d70849b19e..6303ed58ec186d15f4a4d6ab64e9061a6692b2af 100644 --- a/tests/slicing/oracle/unravel-point.4.res.oracle +++ b/tests/slicing/oracle/unravel-point.4.res.oracle @@ -36,10 +36,10 @@ signed overflow. assert *y + *x ≤ 2147483647; [eva] computing for function send1 <- main. Called from unravel-point.i:75. -[eva] computing for function printf <- send1 <- main. - Called from unravel-point.i:36. [kernel:annot:missing-spec] unravel-point.i:36: Warning: Neither code nor specification for function printf, generating default assigns from the prototype +[eva] computing for function printf <- send1 <- main. + Called from unravel-point.i:36. [eva] using specification for function printf [eva] Done for function printf [eva] Recording results for send1 @@ -139,10 +139,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function scanf <- main. - Called from unravel-point.i:59. [kernel:annot:missing-spec] unravel-point.i:59: Warning: Neither code nor specification for function scanf, generating default assigns from the prototype +[eva] computing for function scanf <- main. + Called from unravel-point.i:59. [eva] using specification for function scanf [eva] Done for function scanf [eva:alarm] unravel-point.i:60: Warning: diff --git a/tests/slicing/oracle/unravel-variance.0.res.oracle b/tests/slicing/oracle/unravel-variance.0.res.oracle index 1c8e34235197346f72f1a569ce80fc062fc11642..ce81c2c6e23826179c5c6549698a5d4e50933f9b 100644 --- a/tests/slicing/oracle/unravel-variance.0.res.oracle +++ b/tests/slicing/oracle/unravel-variance.0.res.oracle @@ -5,10 +5,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function scanf <- main. - Called from unravel-variance.i:31. [kernel:annot:missing-spec] unravel-variance.i:31: Warning: Neither code nor specification for function scanf, generating default assigns from the prototype +[eva] computing for function scanf <- main. + Called from unravel-variance.i:31. [eva] using specification for function scanf [eva] Done for function scanf [eva:alarm] unravel-variance.i:32: Warning: @@ -122,10 +122,10 @@ [eva:alarm] unravel-variance.i:52: Warning: overflow in conversion from floating-point to integer. assert var2 < 2147483648; -[eva] computing for function printf1 <- main. - Called from unravel-variance.i:52. [kernel:annot:missing-spec] unravel-variance.i:52: Warning: Neither code nor specification for function printf1, generating default assigns from the prototype +[eva] computing for function printf1 <- main. + Called from unravel-variance.i:52. [eva] using specification for function printf1 [eva] Done for function printf1 [eva:alarm] unravel-variance.i:53: Warning: @@ -134,10 +134,10 @@ [eva:alarm] unravel-variance.i:53: Warning: overflow in conversion from floating-point to integer. assert var3 < 2147483648; -[eva] computing for function printf2 <- main. - Called from unravel-variance.i:53. [kernel:annot:missing-spec] unravel-variance.i:53: Warning: Neither code nor specification for function printf2, generating default assigns from the prototype +[eva] computing for function printf2 <- main. + Called from unravel-variance.i:53. [eva] using specification for function printf2 [eva] Done for function printf2 [eva:alarm] unravel-variance.i:54: Warning: @@ -146,10 +146,10 @@ [eva:alarm] unravel-variance.i:54: Warning: overflow in conversion from floating-point to integer. assert var4 < 2147483648; -[eva] computing for function printf3 <- main. - Called from unravel-variance.i:54. [kernel:annot:missing-spec] unravel-variance.i:54: Warning: Neither code nor specification for function printf3, generating default assigns from the prototype +[eva] computing for function printf3 <- main. + Called from unravel-variance.i:54. [eva] using specification for function printf3 [eva] Done for function printf3 [eva:alarm] unravel-variance.i:55: Warning: @@ -158,10 +158,10 @@ [eva:alarm] unravel-variance.i:55: Warning: overflow in conversion from floating-point to integer. assert var5 < 2147483648; -[eva] computing for function printf4 <- main. - Called from unravel-variance.i:55. [kernel:annot:missing-spec] unravel-variance.i:55: Warning: Neither code nor specification for function printf4, generating default assigns from the prototype +[eva] computing for function printf4 <- main. + Called from unravel-variance.i:55. [eva] using specification for function printf4 [eva] Done for function printf4 [eva:alarm] unravel-variance.i:56: Warning: @@ -170,10 +170,10 @@ [eva:alarm] unravel-variance.i:56: Warning: overflow in conversion from floating-point to integer. assert var1 < 2147483648; -[eva] computing for function printf5 <- main. - Called from unravel-variance.i:56. [kernel:annot:missing-spec] unravel-variance.i:56: Warning: Neither code nor specification for function printf5, generating default assigns from the prototype +[eva] computing for function printf5 <- main. + Called from unravel-variance.i:56. [eva] using specification for function printf5 [eva] Done for function printf5 [eva] Recording results for main diff --git a/tests/slicing/oracle/unravel-variance.1.res.oracle b/tests/slicing/oracle/unravel-variance.1.res.oracle index dc3d6684c28ce34fe7cc00e67d7f4cd799a18957..bccf37024ec5c6c98c0e662e8132bfef551b400f 100644 --- a/tests/slicing/oracle/unravel-variance.1.res.oracle +++ b/tests/slicing/oracle/unravel-variance.1.res.oracle @@ -5,10 +5,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function scanf <- main. - Called from unravel-variance.i:31. [kernel:annot:missing-spec] unravel-variance.i:31: Warning: Neither code nor specification for function scanf, generating default assigns from the prototype +[eva] computing for function scanf <- main. + Called from unravel-variance.i:31. [eva] using specification for function scanf [eva] Done for function scanf [eva:alarm] unravel-variance.i:32: Warning: @@ -122,10 +122,10 @@ [eva:alarm] unravel-variance.i:52: Warning: overflow in conversion from floating-point to integer. assert var2 < 2147483648; -[eva] computing for function printf1 <- main. - Called from unravel-variance.i:52. [kernel:annot:missing-spec] unravel-variance.i:52: Warning: Neither code nor specification for function printf1, generating default assigns from the prototype +[eva] computing for function printf1 <- main. + Called from unravel-variance.i:52. [eva] using specification for function printf1 [eva] Done for function printf1 [eva:alarm] unravel-variance.i:53: Warning: @@ -134,10 +134,10 @@ [eva:alarm] unravel-variance.i:53: Warning: overflow in conversion from floating-point to integer. assert var3 < 2147483648; -[eva] computing for function printf2 <- main. - Called from unravel-variance.i:53. [kernel:annot:missing-spec] unravel-variance.i:53: Warning: Neither code nor specification for function printf2, generating default assigns from the prototype +[eva] computing for function printf2 <- main. + Called from unravel-variance.i:53. [eva] using specification for function printf2 [eva] Done for function printf2 [eva:alarm] unravel-variance.i:54: Warning: @@ -146,10 +146,10 @@ [eva:alarm] unravel-variance.i:54: Warning: overflow in conversion from floating-point to integer. assert var4 < 2147483648; -[eva] computing for function printf3 <- main. - Called from unravel-variance.i:54. [kernel:annot:missing-spec] unravel-variance.i:54: Warning: Neither code nor specification for function printf3, generating default assigns from the prototype +[eva] computing for function printf3 <- main. + Called from unravel-variance.i:54. [eva] using specification for function printf3 [eva] Done for function printf3 [eva:alarm] unravel-variance.i:55: Warning: @@ -158,10 +158,10 @@ [eva:alarm] unravel-variance.i:55: Warning: overflow in conversion from floating-point to integer. assert var5 < 2147483648; -[eva] computing for function printf4 <- main. - Called from unravel-variance.i:55. [kernel:annot:missing-spec] unravel-variance.i:55: Warning: Neither code nor specification for function printf4, generating default assigns from the prototype +[eva] computing for function printf4 <- main. + Called from unravel-variance.i:55. [eva] using specification for function printf4 [eva] Done for function printf4 [eva:alarm] unravel-variance.i:56: Warning: @@ -170,10 +170,10 @@ [eva:alarm] unravel-variance.i:56: Warning: overflow in conversion from floating-point to integer. assert var1 < 2147483648; -[eva] computing for function printf5 <- main. - Called from unravel-variance.i:56. [kernel:annot:missing-spec] unravel-variance.i:56: Warning: Neither code nor specification for function printf5, generating default assigns from the prototype +[eva] computing for function printf5 <- main. + Called from unravel-variance.i:56. [eva] using specification for function printf5 [eva] Done for function printf5 [eva] Recording results for main diff --git a/tests/slicing/oracle/unravel-variance.2.res.oracle b/tests/slicing/oracle/unravel-variance.2.res.oracle index 26c8a8589de6636f9d9be36d24a787717ecfbc59..ae3068ba0adbefe5d89ad12876b135c664d0df2f 100644 --- a/tests/slicing/oracle/unravel-variance.2.res.oracle +++ b/tests/slicing/oracle/unravel-variance.2.res.oracle @@ -5,10 +5,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function scanf <- main. - Called from unravel-variance.i:31. [kernel:annot:missing-spec] unravel-variance.i:31: Warning: Neither code nor specification for function scanf, generating default assigns from the prototype +[eva] computing for function scanf <- main. + Called from unravel-variance.i:31. [eva] using specification for function scanf [eva] Done for function scanf [eva:alarm] unravel-variance.i:32: Warning: @@ -122,10 +122,10 @@ [eva:alarm] unravel-variance.i:52: Warning: overflow in conversion from floating-point to integer. assert var2 < 2147483648; -[eva] computing for function printf1 <- main. - Called from unravel-variance.i:52. [kernel:annot:missing-spec] unravel-variance.i:52: Warning: Neither code nor specification for function printf1, generating default assigns from the prototype +[eva] computing for function printf1 <- main. + Called from unravel-variance.i:52. [eva] using specification for function printf1 [eva] Done for function printf1 [eva:alarm] unravel-variance.i:53: Warning: @@ -134,10 +134,10 @@ [eva:alarm] unravel-variance.i:53: Warning: overflow in conversion from floating-point to integer. assert var3 < 2147483648; -[eva] computing for function printf2 <- main. - Called from unravel-variance.i:53. [kernel:annot:missing-spec] unravel-variance.i:53: Warning: Neither code nor specification for function printf2, generating default assigns from the prototype +[eva] computing for function printf2 <- main. + Called from unravel-variance.i:53. [eva] using specification for function printf2 [eva] Done for function printf2 [eva:alarm] unravel-variance.i:54: Warning: @@ -146,10 +146,10 @@ [eva:alarm] unravel-variance.i:54: Warning: overflow in conversion from floating-point to integer. assert var4 < 2147483648; -[eva] computing for function printf3 <- main. - Called from unravel-variance.i:54. [kernel:annot:missing-spec] unravel-variance.i:54: Warning: Neither code nor specification for function printf3, generating default assigns from the prototype +[eva] computing for function printf3 <- main. + Called from unravel-variance.i:54. [eva] using specification for function printf3 [eva] Done for function printf3 [eva:alarm] unravel-variance.i:55: Warning: @@ -158,10 +158,10 @@ [eva:alarm] unravel-variance.i:55: Warning: overflow in conversion from floating-point to integer. assert var5 < 2147483648; -[eva] computing for function printf4 <- main. - Called from unravel-variance.i:55. [kernel:annot:missing-spec] unravel-variance.i:55: Warning: Neither code nor specification for function printf4, generating default assigns from the prototype +[eva] computing for function printf4 <- main. + Called from unravel-variance.i:55. [eva] using specification for function printf4 [eva] Done for function printf4 [eva:alarm] unravel-variance.i:56: Warning: @@ -170,10 +170,10 @@ [eva:alarm] unravel-variance.i:56: Warning: overflow in conversion from floating-point to integer. assert var1 < 2147483648; -[eva] computing for function printf5 <- main. - Called from unravel-variance.i:56. [kernel:annot:missing-spec] unravel-variance.i:56: Warning: Neither code nor specification for function printf5, generating default assigns from the prototype +[eva] computing for function printf5 <- main. + Called from unravel-variance.i:56. [eva] using specification for function printf5 [eva] Done for function printf5 [eva] Recording results for main diff --git a/tests/slicing/oracle/unravel-variance.3.res.oracle b/tests/slicing/oracle/unravel-variance.3.res.oracle index 4b3f186ea752e779cb84de981e9330c7ab16c4ef..2664ab39dcca01a8670d4684ab2a06e4aa112266 100644 --- a/tests/slicing/oracle/unravel-variance.3.res.oracle +++ b/tests/slicing/oracle/unravel-variance.3.res.oracle @@ -5,10 +5,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function scanf <- main. - Called from unravel-variance.i:31. [kernel:annot:missing-spec] unravel-variance.i:31: Warning: Neither code nor specification for function scanf, generating default assigns from the prototype +[eva] computing for function scanf <- main. + Called from unravel-variance.i:31. [eva] using specification for function scanf [eva] Done for function scanf [eva:alarm] unravel-variance.i:32: Warning: @@ -122,10 +122,10 @@ [eva:alarm] unravel-variance.i:52: Warning: overflow in conversion from floating-point to integer. assert var2 < 2147483648; -[eva] computing for function printf1 <- main. - Called from unravel-variance.i:52. [kernel:annot:missing-spec] unravel-variance.i:52: Warning: Neither code nor specification for function printf1, generating default assigns from the prototype +[eva] computing for function printf1 <- main. + Called from unravel-variance.i:52. [eva] using specification for function printf1 [eva] Done for function printf1 [eva:alarm] unravel-variance.i:53: Warning: @@ -134,10 +134,10 @@ [eva:alarm] unravel-variance.i:53: Warning: overflow in conversion from floating-point to integer. assert var3 < 2147483648; -[eva] computing for function printf2 <- main. - Called from unravel-variance.i:53. [kernel:annot:missing-spec] unravel-variance.i:53: Warning: Neither code nor specification for function printf2, generating default assigns from the prototype +[eva] computing for function printf2 <- main. + Called from unravel-variance.i:53. [eva] using specification for function printf2 [eva] Done for function printf2 [eva:alarm] unravel-variance.i:54: Warning: @@ -146,10 +146,10 @@ [eva:alarm] unravel-variance.i:54: Warning: overflow in conversion from floating-point to integer. assert var4 < 2147483648; -[eva] computing for function printf3 <- main. - Called from unravel-variance.i:54. [kernel:annot:missing-spec] unravel-variance.i:54: Warning: Neither code nor specification for function printf3, generating default assigns from the prototype +[eva] computing for function printf3 <- main. + Called from unravel-variance.i:54. [eva] using specification for function printf3 [eva] Done for function printf3 [eva:alarm] unravel-variance.i:55: Warning: @@ -158,10 +158,10 @@ [eva:alarm] unravel-variance.i:55: Warning: overflow in conversion from floating-point to integer. assert var5 < 2147483648; -[eva] computing for function printf4 <- main. - Called from unravel-variance.i:55. [kernel:annot:missing-spec] unravel-variance.i:55: Warning: Neither code nor specification for function printf4, generating default assigns from the prototype +[eva] computing for function printf4 <- main. + Called from unravel-variance.i:55. [eva] using specification for function printf4 [eva] Done for function printf4 [eva:alarm] unravel-variance.i:56: Warning: @@ -170,10 +170,10 @@ [eva:alarm] unravel-variance.i:56: Warning: overflow in conversion from floating-point to integer. assert var1 < 2147483648; -[eva] computing for function printf5 <- main. - Called from unravel-variance.i:56. [kernel:annot:missing-spec] unravel-variance.i:56: Warning: Neither code nor specification for function printf5, generating default assigns from the prototype +[eva] computing for function printf5 <- main. + Called from unravel-variance.i:56. [eva] using specification for function printf5 [eva] Done for function printf5 [eva] Recording results for main diff --git a/tests/slicing/oracle/unravel-variance.4.res.oracle b/tests/slicing/oracle/unravel-variance.4.res.oracle index df31e40bcc05c85b466e8971860f9ba3698a2b6d..82f8aced73733f8aeccb0c5b8bbb6147357b7f2c 100644 --- a/tests/slicing/oracle/unravel-variance.4.res.oracle +++ b/tests/slicing/oracle/unravel-variance.4.res.oracle @@ -5,10 +5,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function scanf <- main. - Called from unravel-variance.i:31. [kernel:annot:missing-spec] unravel-variance.i:31: Warning: Neither code nor specification for function scanf, generating default assigns from the prototype +[eva] computing for function scanf <- main. + Called from unravel-variance.i:31. [eva] using specification for function scanf [eva] Done for function scanf [eva:alarm] unravel-variance.i:32: Warning: @@ -122,10 +122,10 @@ [eva:alarm] unravel-variance.i:52: Warning: overflow in conversion from floating-point to integer. assert var2 < 2147483648; -[eva] computing for function printf1 <- main. - Called from unravel-variance.i:52. [kernel:annot:missing-spec] unravel-variance.i:52: Warning: Neither code nor specification for function printf1, generating default assigns from the prototype +[eva] computing for function printf1 <- main. + Called from unravel-variance.i:52. [eva] using specification for function printf1 [eva] Done for function printf1 [eva:alarm] unravel-variance.i:53: Warning: @@ -134,10 +134,10 @@ [eva:alarm] unravel-variance.i:53: Warning: overflow in conversion from floating-point to integer. assert var3 < 2147483648; -[eva] computing for function printf2 <- main. - Called from unravel-variance.i:53. [kernel:annot:missing-spec] unravel-variance.i:53: Warning: Neither code nor specification for function printf2, generating default assigns from the prototype +[eva] computing for function printf2 <- main. + Called from unravel-variance.i:53. [eva] using specification for function printf2 [eva] Done for function printf2 [eva:alarm] unravel-variance.i:54: Warning: @@ -146,10 +146,10 @@ [eva:alarm] unravel-variance.i:54: Warning: overflow in conversion from floating-point to integer. assert var4 < 2147483648; -[eva] computing for function printf3 <- main. - Called from unravel-variance.i:54. [kernel:annot:missing-spec] unravel-variance.i:54: Warning: Neither code nor specification for function printf3, generating default assigns from the prototype +[eva] computing for function printf3 <- main. + Called from unravel-variance.i:54. [eva] using specification for function printf3 [eva] Done for function printf3 [eva:alarm] unravel-variance.i:55: Warning: @@ -158,10 +158,10 @@ [eva:alarm] unravel-variance.i:55: Warning: overflow in conversion from floating-point to integer. assert var5 < 2147483648; -[eva] computing for function printf4 <- main. - Called from unravel-variance.i:55. [kernel:annot:missing-spec] unravel-variance.i:55: Warning: Neither code nor specification for function printf4, generating default assigns from the prototype +[eva] computing for function printf4 <- main. + Called from unravel-variance.i:55. [eva] using specification for function printf4 [eva] Done for function printf4 [eva:alarm] unravel-variance.i:56: Warning: @@ -170,10 +170,10 @@ [eva:alarm] unravel-variance.i:56: Warning: overflow in conversion from floating-point to integer. assert var1 < 2147483648; -[eva] computing for function printf5 <- main. - Called from unravel-variance.i:56. [kernel:annot:missing-spec] unravel-variance.i:56: Warning: Neither code nor specification for function printf5, generating default assigns from the prototype +[eva] computing for function printf5 <- main. + Called from unravel-variance.i:56. [eva] using specification for function printf5 [eva] Done for function printf5 [eva] Recording results for main diff --git a/tests/slicing/oracle/variadic.0.res.oracle b/tests/slicing/oracle/variadic.0.res.oracle index d20a0522f6731e4af50c9f68039d8b7e92b73173..6d5dd41248b88c5806c51f48e48a27da9a68563c 100644 --- a/tests/slicing/oracle/variadic.0.res.oracle +++ b/tests/slicing/oracle/variadic.0.res.oracle @@ -8,10 +8,10 @@ [eva] computing for function f1 <- main. Called from tests/pdg/variadic.c:37. -[eva] computing for function lib_f <- f1 <- main. - Called from tests/pdg/variadic.c:23. [kernel:annot:missing-spec] tests/pdg/variadic.c:23: Warning: Neither code nor specification for function lib_f, generating default assigns from the prototype +[eva] computing for function lib_f <- f1 <- main. + Called from tests/pdg/variadic.c:23. [eva] using specification for function lib_f [eva] Done for function lib_f [eva] Recording results for f1 diff --git a/tests/slicing/oracle/variadic.1.res.oracle b/tests/slicing/oracle/variadic.1.res.oracle index 262fef8cb4b2cae2bcc0badd9938d0d54e6b5030..caccc9ace2f1209f70922e257a64c7dc11bc39b1 100644 --- a/tests/slicing/oracle/variadic.1.res.oracle +++ b/tests/slicing/oracle/variadic.1.res.oracle @@ -8,10 +8,10 @@ [eva] computing for function f1 <- main. Called from tests/pdg/variadic.c:37. -[eva] computing for function lib_f <- f1 <- main. - Called from tests/pdg/variadic.c:23. [kernel:annot:missing-spec] tests/pdg/variadic.c:23: Warning: Neither code nor specification for function lib_f, generating default assigns from the prototype +[eva] computing for function lib_f <- f1 <- main. + Called from tests/pdg/variadic.c:23. [eva] using specification for function lib_f [eva] Done for function lib_f [eva] Recording results for f1 diff --git a/tests/slicing/oracle/variadic.2.res.oracle b/tests/slicing/oracle/variadic.2.res.oracle index 84212502c0317c64bee00c339a3c38acec3bc55a..fae36df0bab812afb90e041377ab3c21422c5079 100644 --- a/tests/slicing/oracle/variadic.2.res.oracle +++ b/tests/slicing/oracle/variadic.2.res.oracle @@ -8,10 +8,10 @@ [eva] computing for function f1 <- main. Called from tests/pdg/variadic.c:37. -[eva] computing for function lib_f <- f1 <- main. - Called from tests/pdg/variadic.c:23. [kernel:annot:missing-spec] tests/pdg/variadic.c:23: Warning: Neither code nor specification for function lib_f, generating default assigns from the prototype +[eva] computing for function lib_f <- f1 <- main. + Called from tests/pdg/variadic.c:23. [eva] using specification for function lib_f [eva] Done for function lib_f [eva] Recording results for f1 diff --git a/tests/slicing/oracle/variadic.3.res.oracle b/tests/slicing/oracle/variadic.3.res.oracle index 72db5708548e320f6d5aa039ec9c80861fbe6132..335a7f4c9736f14e2d65caa9c36fc125ded46262 100644 --- a/tests/slicing/oracle/variadic.3.res.oracle +++ b/tests/slicing/oracle/variadic.3.res.oracle @@ -8,10 +8,10 @@ [eva] computing for function f1 <- main. Called from tests/pdg/variadic.c:37. -[eva] computing for function lib_f <- f1 <- main. - Called from tests/pdg/variadic.c:23. [kernel:annot:missing-spec] tests/pdg/variadic.c:23: Warning: Neither code nor specification for function lib_f, generating default assigns from the prototype +[eva] computing for function lib_f <- f1 <- main. + Called from tests/pdg/variadic.c:23. [eva] using specification for function lib_f [eva] Done for function lib_f [eva] Recording results for f1 diff --git a/tests/slicing/oracle/variadic.4.res.oracle b/tests/slicing/oracle/variadic.4.res.oracle index 72db5708548e320f6d5aa039ec9c80861fbe6132..335a7f4c9736f14e2d65caa9c36fc125ded46262 100644 --- a/tests/slicing/oracle/variadic.4.res.oracle +++ b/tests/slicing/oracle/variadic.4.res.oracle @@ -8,10 +8,10 @@ [eva] computing for function f1 <- main. Called from tests/pdg/variadic.c:37. -[eva] computing for function lib_f <- f1 <- main. - Called from tests/pdg/variadic.c:23. [kernel:annot:missing-spec] tests/pdg/variadic.c:23: Warning: Neither code nor specification for function lib_f, generating default assigns from the prototype +[eva] computing for function lib_f <- f1 <- main. + Called from tests/pdg/variadic.c:23. [eva] using specification for function lib_f [eva] Done for function lib_f [eva] Recording results for f1 diff --git a/tests/sparecode/oracle/bts334.0.res.oracle b/tests/sparecode/oracle/bts334.0.res.oracle index b514401262ed3be20fa52868c0d3e5fba91a910e..b5d83bb8ac73533c87e09bfe5e6f2580b7ddec63 100644 --- a/tests/sparecode/oracle/bts334.0.res.oracle +++ b/tests/sparecode/oracle/bts334.0.res.oracle @@ -12,10 +12,10 @@ s1 ∈ {0} si[0..1] ∈ {0} so[0..1] ∈ {0} -[eva] computing for function init <- main_init. - Called from bts334.i:66. [kernel] bts334.i:66: Warning: No code nor explicit assigns clause for function init, generating default assigns from the specification +[eva] computing for function init <- main_init. + Called from bts334.i:66. [eva] using specification for function init [eva] bts334.i:61: Warning: no 'assigns \result \from ...' clause specified for function init diff --git a/tests/sparecode/oracle/bts334.1.res.oracle b/tests/sparecode/oracle/bts334.1.res.oracle index 14a05eb9249e23f0cb01f74180123ac88740d85f..77e6867d86f7469c165f58830a95983a72c8330b 100644 --- a/tests/sparecode/oracle/bts334.1.res.oracle +++ b/tests/sparecode/oracle/bts334.1.res.oracle @@ -12,10 +12,10 @@ s1 ∈ {0} si[0..1] ∈ {0} so[0..1] ∈ {0} -[eva] computing for function init <- main_init. - Called from bts334.i:66. [kernel] bts334.i:66: Warning: No code nor explicit assigns clause for function init, generating default assigns from the specification +[eva] computing for function init <- main_init. + Called from bts334.i:66. [eva] using specification for function init [eva] bts334.i:61: Warning: no 'assigns \result \from ...' clause specified for function init diff --git a/tests/sparecode/oracle/bts334.2.res.oracle b/tests/sparecode/oracle/bts334.2.res.oracle index 46154e7440ca51b5e742d0548aad9600d1ff5c1a..2f276f5ff609c6532b77d47ce878fe364e49a637 100644 --- a/tests/sparecode/oracle/bts334.2.res.oracle +++ b/tests/sparecode/oracle/bts334.2.res.oracle @@ -11,10 +11,10 @@ s1 ∈ {0} si[0..1] ∈ {0} so[0..1] ∈ {0} -[eva] computing for function init <- main_init. - Called from bts334.i:66. [kernel] bts334.i:66: Warning: No code nor explicit assigns clause for function init, generating default assigns from the specification +[eva] computing for function init <- main_init. + Called from bts334.i:66. [eva] using specification for function init [eva] bts334.i:61: Warning: no 'assigns \result \from ...' clause specified for function init diff --git a/tests/sparecode/oracle/intra.0.res.oracle b/tests/sparecode/oracle/intra.0.res.oracle index 519649a8fa7de78c626161d6eac01aa5db2a7070..14470158edb9c522b23ca615c210dc09c4ce4179 100644 --- a/tests/sparecode/oracle/intra.0.res.oracle +++ b/tests/sparecode/oracle/intra.0.res.oracle @@ -49,10 +49,10 @@ Called from intra.i:88. [eva] Recording results for assign [eva] Done for function assign -[eva] computing for function stop <- main. - Called from intra.i:91. [kernel:annot:missing-spec] intra.i:91: Warning: Neither code nor specification for function stop, generating default assigns from the prototype +[eva] computing for function stop <- main. + Called from intra.i:91. [eva] using specification for function stop [eva] Done for function stop [eva] Recording results for main diff --git a/tests/sparecode/oracle/intra.1.res.oracle b/tests/sparecode/oracle/intra.1.res.oracle index 15c053d475d926a938530b72798d70253b050218..3715b90db0f8366641498b59675fc0f0b95f6a29 100644 --- a/tests/sparecode/oracle/intra.1.res.oracle +++ b/tests/sparecode/oracle/intra.1.res.oracle @@ -48,10 +48,10 @@ Called from intra.i:88. [eva] Recording results for assign [eva] Done for function assign -[eva] computing for function stop <- main. - Called from intra.i:91. [kernel:annot:missing-spec] intra.i:91: Warning: Neither code nor specification for function stop, generating default assigns from the prototype +[eva] computing for function stop <- main. + Called from intra.i:91. [eva] using specification for function stop [eva] Done for function stop [eva] Recording results for main diff --git a/tests/sparecode/oracle/top.1.res.oracle b/tests/sparecode/oracle/top.1.res.oracle index 1d348f16c914d0926d755228321df4bc5bb06970..4f6f7329b0c8ab48220792237e262e3c14ab4a1d 100644 --- a/tests/sparecode/oracle/top.1.res.oracle +++ b/tests/sparecode/oracle/top.1.res.oracle @@ -16,10 +16,10 @@ [eva] Done for function main_top [eva] computing for function not_used_in_main_top <- main_call_top. Called from top.i:27. -[eva] computing for function print <- not_used_in_main_top <- main_call_top. - Called from top.i:10. [kernel:annot:missing-spec] top.i:10: Warning: Neither code nor specification for function print, generating default assigns from the prototype +[eva] computing for function print <- not_used_in_main_top <- main_call_top. + Called from top.i:10. [eva] using specification for function print [eva] Done for function print [eva] Recording results for not_used_in_main_top diff --git a/tests/spec/oracle/assigns_void.1.res.oracle b/tests/spec/oracle/assigns_void.1.res.oracle index fa59eca7f82e704ec2f3575b27813a3345af91d3..fb9a8b2d5baf925d7c65b0220e3dc581cc224341 100644 --- a/tests/spec/oracle/assigns_void.1.res.oracle +++ b/tests/spec/oracle/assigns_void.1.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function f <- g. - Called from assigns_void.c:11. [kernel:annot:missing-spec] assigns_void.c:11: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- g. + Called from assigns_void.c:11. [eva] using specification for function f [eva] Done for function f [eva] Recording results for g diff --git a/tests/value/oracle/assigns.res.oracle b/tests/value/oracle/assigns.res.oracle index fc787492fd03594f6fd0695eb22d300a00846d47..1bdb53cd80638ca67a3459df8cda1068e0b917d8 100644 --- a/tests/value/oracle/assigns.res.oracle +++ b/tests/value/oracle/assigns.res.oracle @@ -102,22 +102,22 @@ [eva] using specification for function ff3 [eva] assigns.i:68: Warning: no \from part for clause 'assigns y1, y3;' [eva] Done for function ff3 -[eva] computing for function ff4 <- main2 <- main. - Called from assigns.i:79. [kernel:annot:missing-spec] assigns.i:79: Warning: Neither code nor specification for function ff4, generating default assigns from the prototype +[eva] computing for function ff4 <- main2 <- main. + Called from assigns.i:79. [eva] using specification for function ff4 [eva] Done for function ff4 -[eva] computing for function ff5 <- main2 <- main. - Called from assigns.i:80. [kernel:annot:missing-spec] assigns.i:80: Warning: Neither code nor specification for function ff5, generating default assigns from the prototype +[eva] computing for function ff5 <- main2 <- main. + Called from assigns.i:80. [eva] using specification for function ff5 [eva] Done for function ff5 -[eva] computing for function ff2 <- main2 <- main. - Called from assigns.i:82. [kernel:annot:missing-spec] assigns.i:82: Warning: Neither code nor specification for function ff2, generating default assigns from the prototype +[eva] computing for function ff2 <- main2 <- main. + Called from assigns.i:82. [eva] using specification for function ff2 [eva] Done for function ff2 [eva] computing for function ff2_bis <- main2 <- main. @@ -130,10 +130,10 @@ pointer comparison. assert \pointer_comparable((void *)p, (void *)(&x)); [eva] Recording results for main2 [eva] Done for function main2 -[eva] computing for function main3 <- main. - Called from assigns.i:112. [kernel:annot:missing-spec] assigns.i:112: Warning: Neither code nor specification for function main3, generating default assigns from the prototype +[eva] computing for function main3 <- main. + Called from assigns.i:112. [eva] using specification for function main3 [eva] Done for function main3 [eva] computing for function main4 <- main. diff --git a/tests/value/oracle/assigns_from.res.oracle b/tests/value/oracle/assigns_from.res.oracle index f8e6dc8fe59c3acfd7bc4d6557869917bf83f6cc..0149986d5d772be27b59719f380ba7ccead5db0d 100644 --- a/tests/value/oracle/assigns_from.res.oracle +++ b/tests/value/oracle/assigns_from.res.oracle @@ -186,10 +186,10 @@ [eva] Done for function main9 [eva] computing for function main10 <- main. Called from assigns_from.i:244. -[eva] computing for function c <- main10 <- main. - Called from assigns_from.i:152. [kernel:annot:missing-spec] assigns_from.i:152: Warning: Neither code nor specification for function c, generating default assigns from the prototype +[eva] computing for function c <- main10 <- main. + Called from assigns_from.i:152. [eva] using specification for function c [eva] Done for function c [eva] assigns_from.i:152: starting to merge loop iterations diff --git a/tests/value/oracle/automalloc.res.oracle b/tests/value/oracle/automalloc.res.oracle index 5f9f032426501548404c5a1baf17b3e9851b9cea..1ead5d50a962fa7fc3d5efdaf50f763f9c8363dd 100644 --- a/tests/value/oracle/automalloc.res.oracle +++ b/tests/value/oracle/automalloc.res.oracle @@ -4,16 +4,16 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function malloc <- main. - Called from automalloc.i:14. [kernel:annot:missing-spec] automalloc.i:14: Warning: Neither code nor specification for function malloc, generating default assigns from the prototype +[eva] computing for function malloc <- main. + Called from automalloc.i:14. [eva] using specification for function malloc [eva] Done for function malloc -[eva] computing for function realloc <- main. - Called from automalloc.i:15. [kernel:annot:missing-spec] automalloc.i:15: Warning: Neither code nor specification for function realloc, generating default assigns from the prototype +[eva] computing for function realloc <- main. + Called from automalloc.i:15. [eva] using specification for function realloc [eva] Done for function realloc [eva:alarm] automalloc.i:17: Warning: diff --git a/tests/value/oracle/behaviors1.res.oracle b/tests/value/oracle/behaviors1.res.oracle index 7971f0399f312076281f01f09242f442f0027828..504e982e8951bf6f1ea5d40e294f447aa340583d 100644 --- a/tests/value/oracle/behaviors1.res.oracle +++ b/tests/value/oracle/behaviors1.res.oracle @@ -337,10 +337,10 @@ [eva] Done for function test_assigns2 [eva] computing for function test_small1 <- main. Called from behaviors1.i:649. -[eva] computing for function f3 <- test_small1 <- main. - Called from behaviors1.i:506. [kernel] behaviors1.i:506: Warning: No code nor implicit assigns clause for function f3, generating default assigns from the prototype +[eva] computing for function f3 <- test_small1 <- main. + Called from behaviors1.i:506. [eva] using specification for function f3 [eva:alarm] behaviors1.i:506: Warning: function f3: precondition got status unknown. @@ -351,10 +351,10 @@ [eva] Done for function test_small1 [eva] computing for function test_small2 <- main. Called from behaviors1.i:650. -[eva] computing for function f4 <- test_small2 <- main. - Called from behaviors1.i:521. [kernel] behaviors1.i:521: Warning: No code nor implicit assigns clause for function f4, generating default assigns from the prototype +[eva] computing for function f4 <- test_small2 <- main. + Called from behaviors1.i:521. [eva] using specification for function f4 [eva:alarm] behaviors1.i:521: Warning: function f4: precondition got status unknown. @@ -369,30 +369,30 @@ [eva] Done for function test_small2 [eva] computing for function test_small3 <- main. Called from behaviors1.i:651. -[eva] computing for function f5 <- test_small3 <- main. - Called from behaviors1.i:534. [kernel] behaviors1.i:534: Warning: No code nor implicit assigns clause for function f5, generating default assigns from the prototype +[eva] computing for function f5 <- test_small3 <- main. + Called from behaviors1.i:534. [eva] using specification for function f5 [eva] Done for function f5 [eva] Recording results for test_small3 [eva] Done for function test_small3 [eva] computing for function test_small4 <- main. Called from behaviors1.i:652. -[eva] computing for function f6 <- test_small4 <- main. - Called from behaviors1.i:548. [kernel] behaviors1.i:548: Warning: No code nor implicit assigns clause for function f6, generating default assigns from the prototype +[eva] computing for function f6 <- test_small4 <- main. + Called from behaviors1.i:548. [eva] using specification for function f6 [eva] Done for function f6 [eva] Recording results for test_small4 [eva] Done for function test_small4 [eva] computing for function test_small5 <- main. Called from behaviors1.i:653. -[eva] computing for function f7 <- test_small5 <- main. - Called from behaviors1.i:561. [kernel] behaviors1.i:561: Warning: No code nor implicit assigns clause for function f7, generating default assigns from the prototype +[eva] computing for function f7 <- test_small5 <- main. + Called from behaviors1.i:561. [eva] using specification for function f7 [eva:alarm] behaviors1.i:561: Warning: function f7: precondition got status unknown. diff --git a/tests/value/oracle/bitfield.res.oracle b/tests/value/oracle/bitfield.res.oracle index c38d611eb27b9e53749960ed74fecb30398cad52..506aa9ec93d5aee5a0993e625296d443a4ae893b 100644 --- a/tests/value/oracle/bitfield.res.oracle +++ b/tests/value/oracle/bitfield.res.oracle @@ -99,10 +99,10 @@ locals {v} escaping the scope of main_old through h [eva] computing for function imprecise_bts_1671 <- main. Called from bitfield.i:165. -[eva] computing for function leaf <- imprecise_bts_1671 <- main. - Called from bitfield.i:70. [kernel:annot:missing-spec] bitfield.i:70: Warning: Neither code nor specification for function leaf, generating default assigns from the prototype +[eva] computing for function leaf <- imprecise_bts_1671 <- main. + Called from bitfield.i:70. [eva] using specification for function leaf [eva] Done for function leaf [eva] bitfield.i:71: diff --git a/tests/value/oracle/bts0506.0.res.oracle b/tests/value/oracle/bts0506.0.res.oracle index b5cfd130cebfdc88fd3e6e5a90532d3798ede1ad..994c9d1fe3eb2e210b00fcbf107dd8bf76a14f61 100644 --- a/tests/value/oracle/bts0506.0.res.oracle +++ b/tests/value/oracle/bts0506.0.res.oracle @@ -10,10 +10,10 @@ [eva] Done for function f [eva] computing for function main2 <- main. Called from bts0506.i:49. -[eva] computing for function f1 <- main2 <- main. - Called from bts0506.i:15. [kernel:annot:missing-spec] bts0506.i:15: Warning: Neither code nor specification for function f1, generating default assigns from the prototype +[eva] computing for function f1 <- main2 <- main. + Called from bts0506.i:15. [eva] using specification for function f1 [eva] Done for function f1 [eva] computing for function f1 <- main2 <- main. @@ -25,10 +25,10 @@ [eva] computing for function f1 <- main2 <- main. Called from bts0506.i:18. [eva] Done for function f1 -[eva] computing for function f2 <- main2 <- main. - Called from bts0506.i:20. [kernel:annot:missing-spec] bts0506.i:20: Warning: Neither code nor specification for function f2, generating default assigns from the prototype +[eva] computing for function f2 <- main2 <- main. + Called from bts0506.i:20. [eva] using specification for function f2 [eva] Done for function f2 [eva] computing for function f2 <- main2 <- main. @@ -37,19 +37,19 @@ [eva] computing for function f2 <- main2 <- main. Called from bts0506.i:22. [eva] Done for function f2 -[eva] computing for function f3 <- main2 <- main. - Called from bts0506.i:24. [kernel:annot:missing-spec] bts0506.i:24: Warning: Neither code nor specification for function f3, generating default assigns from the prototype +[eva] computing for function f3 <- main2 <- main. + Called from bts0506.i:24. [eva] using specification for function f3 [eva] Done for function f3 [eva] computing for function f3 <- main2 <- main. Called from bts0506.i:25. [eva] Done for function f3 -[eva] computing for function f4 <- main2 <- main. - Called from bts0506.i:27. [kernel:annot:missing-spec] bts0506.i:27: Warning: Neither code nor specification for function f4, generating default assigns from the prototype +[eva] computing for function f4 <- main2 <- main. + Called from bts0506.i:27. [eva] using specification for function f4 [eva] Done for function f4 [eva:alarm] bts0506.i:27: Warning: @@ -61,10 +61,10 @@ [eva:alarm] bts0506.i:28: Warning: non-finite float value. assert \is_finite(tmp_9); (tmp_9 from f4()) -[eva] computing for function f5 <- main2 <- main. - Called from bts0506.i:30. [kernel:annot:missing-spec] bts0506.i:30: Warning: Neither code nor specification for function f5, generating default assigns from the prototype +[eva] computing for function f5 <- main2 <- main. + Called from bts0506.i:30. [eva] using specification for function f5 [eva] Done for function f5 [eva:alarm] bts0506.i:30: Warning: @@ -79,10 +79,10 @@ [eva:alarm] bts0506.i:31: Warning: non-finite double value. assert \is_finite(tmp_11); (tmp_11 from f5()) -[eva] computing for function f6 <- main2 <- main. - Called from bts0506.i:33. [kernel:annot:missing-spec] bts0506.i:33: Warning: Neither code nor specification for function f6, generating default assigns from the prototype +[eva] computing for function f6 <- main2 <- main. + Called from bts0506.i:33. [eva] using specification for function f6 [eva] Done for function f6 [eva] computing for function f6 <- main2 <- main. @@ -91,10 +91,10 @@ [eva] computing for function f6 <- main2 <- main. Called from bts0506.i:35. [eva] Done for function f6 -[eva] computing for function f7 <- main2 <- main. - Called from bts0506.i:37. [kernel:annot:missing-spec] bts0506.i:37: Warning: Neither code nor specification for function f7, generating default assigns from the prototype +[eva] computing for function f7 <- main2 <- main. + Called from bts0506.i:37. [eva] using specification for function f7 [eva] Done for function f7 [eva] computing for function f7 <- main2 <- main. diff --git a/tests/value/oracle/bts0506.1.res.oracle b/tests/value/oracle/bts0506.1.res.oracle index 188a7a4ff1ad6b4f70cff3036b2edc84b354bd11..18a53ed9fcc536e72cb20026533a90659b788e4b 100644 --- a/tests/value/oracle/bts0506.1.res.oracle +++ b/tests/value/oracle/bts0506.1.res.oracle @@ -10,10 +10,10 @@ [eva] Done for function f [eva] computing for function main2 <- main. Called from bts0506.i:49. -[eva] computing for function f1 <- main2 <- main. - Called from bts0506.i:15. [kernel:annot:missing-spec] bts0506.i:15: Warning: Neither code nor specification for function f1, generating default assigns from the prototype +[eva] computing for function f1 <- main2 <- main. + Called from bts0506.i:15. [eva] using specification for function f1 [eva] Done for function f1 [eva] computing for function f1 <- main2 <- main. @@ -25,10 +25,10 @@ [eva] computing for function f1 <- main2 <- main. Called from bts0506.i:18. [eva] Done for function f1 -[eva] computing for function f2 <- main2 <- main. - Called from bts0506.i:20. [kernel:annot:missing-spec] bts0506.i:20: Warning: Neither code nor specification for function f2, generating default assigns from the prototype +[eva] computing for function f2 <- main2 <- main. + Called from bts0506.i:20. [eva] using specification for function f2 [eva] Done for function f2 [eva] computing for function f2 <- main2 <- main. @@ -37,19 +37,19 @@ [eva] computing for function f2 <- main2 <- main. Called from bts0506.i:22. [eva] Done for function f2 -[eva] computing for function f3 <- main2 <- main. - Called from bts0506.i:24. [kernel:annot:missing-spec] bts0506.i:24: Warning: Neither code nor specification for function f3, generating default assigns from the prototype +[eva] computing for function f3 <- main2 <- main. + Called from bts0506.i:24. [eva] using specification for function f3 [eva] Done for function f3 [eva] computing for function f3 <- main2 <- main. Called from bts0506.i:25. [eva] Done for function f3 -[eva] computing for function f4 <- main2 <- main. - Called from bts0506.i:27. [kernel:annot:missing-spec] bts0506.i:27: Warning: Neither code nor specification for function f4, generating default assigns from the prototype +[eva] computing for function f4 <- main2 <- main. + Called from bts0506.i:27. [eva] using specification for function f4 [eva] Done for function f4 [eva] computing for function f4 <- main2 <- main. @@ -58,10 +58,10 @@ [eva:alarm] bts0506.i:28: Warning: non-finite float value. assert \is_finite(tmp_9); (tmp_9 from f4()) -[eva] computing for function f5 <- main2 <- main. - Called from bts0506.i:30. [kernel:annot:missing-spec] bts0506.i:30: Warning: Neither code nor specification for function f5, generating default assigns from the prototype +[eva] computing for function f5 <- main2 <- main. + Called from bts0506.i:30. [eva] using specification for function f5 [eva] Done for function f5 [eva:alarm] bts0506.i:30: Warning: @@ -73,10 +73,10 @@ [eva] computing for function f5 <- main2 <- main. Called from bts0506.i:31. [eva] Done for function f5 -[eva] computing for function f6 <- main2 <- main. - Called from bts0506.i:33. [kernel:annot:missing-spec] bts0506.i:33: Warning: Neither code nor specification for function f6, generating default assigns from the prototype +[eva] computing for function f6 <- main2 <- main. + Called from bts0506.i:33. [eva] using specification for function f6 [eva] Done for function f6 [eva] computing for function f6 <- main2 <- main. @@ -85,10 +85,10 @@ [eva] computing for function f6 <- main2 <- main. Called from bts0506.i:35. [eva] Done for function f6 -[eva] computing for function f7 <- main2 <- main. - Called from bts0506.i:37. [kernel:annot:missing-spec] bts0506.i:37: Warning: Neither code nor specification for function f7, generating default assigns from the prototype +[eva] computing for function f7 <- main2 <- main. + Called from bts0506.i:37. [eva] using specification for function f7 [eva] Done for function f7 [eva] computing for function f7 <- main2 <- main. diff --git a/tests/value/oracle/bug0223.0.res.oracle b/tests/value/oracle/bug0223.0.res.oracle index bac86646e418b0526aff9c3c4e184dda31cb45f5..f470f869eec6200f49cb7ef0940e6982ff080a86 100644 --- a/tests/value/oracle/bug0223.0.res.oracle +++ b/tests/value/oracle/bug0223.0.res.oracle @@ -7,10 +7,10 @@ ch2 ∈ {{ NULL ; &S_ch2[0] }} S_ch1[0..1] ∈ [--..--] S_ch2[0..1] ∈ [--..--] -[eva] computing for function F <- main. - Called from bug0223.i:33. [kernel:annot:missing-spec] bug0223.i:33: Warning: Neither code nor specification for function F, generating default assigns from the prototype +[eva] computing for function F <- main. + Called from bug0223.i:33. [eva] using specification for function F [eva] Done for function F [eva] computing for function F <- main. @@ -18,10 +18,10 @@ [eva] Done for function F [eva] computing for function h2 <- main. Called from bug0223.i:35. -[eva] computing for function my_strcnmp <- h2 <- main. - Called from bug0223.i:16. [kernel:annot:missing-spec] bug0223.i:16: Warning: Neither code nor specification for function my_strcnmp, generating default assigns from the prototype +[eva] computing for function my_strcnmp <- h2 <- main. + Called from bug0223.i:16. [eva] using specification for function my_strcnmp [eva] Done for function my_strcnmp [eva] Recording results for h2 diff --git a/tests/value/oracle/bug0223.1.res.oracle b/tests/value/oracle/bug0223.1.res.oracle index bac86646e418b0526aff9c3c4e184dda31cb45f5..f470f869eec6200f49cb7ef0940e6982ff080a86 100644 --- a/tests/value/oracle/bug0223.1.res.oracle +++ b/tests/value/oracle/bug0223.1.res.oracle @@ -7,10 +7,10 @@ ch2 ∈ {{ NULL ; &S_ch2[0] }} S_ch1[0..1] ∈ [--..--] S_ch2[0..1] ∈ [--..--] -[eva] computing for function F <- main. - Called from bug0223.i:33. [kernel:annot:missing-spec] bug0223.i:33: Warning: Neither code nor specification for function F, generating default assigns from the prototype +[eva] computing for function F <- main. + Called from bug0223.i:33. [eva] using specification for function F [eva] Done for function F [eva] computing for function F <- main. @@ -18,10 +18,10 @@ [eva] Done for function F [eva] computing for function h2 <- main. Called from bug0223.i:35. -[eva] computing for function my_strcnmp <- h2 <- main. - Called from bug0223.i:16. [kernel:annot:missing-spec] bug0223.i:16: Warning: Neither code nor specification for function my_strcnmp, generating default assigns from the prototype +[eva] computing for function my_strcnmp <- h2 <- main. + Called from bug0223.i:16. [eva] using specification for function my_strcnmp [eva] Done for function my_strcnmp [eva] Recording results for h2 diff --git a/tests/value/oracle/bug_023.res.oracle b/tests/value/oracle/bug_023.res.oracle index 4170a126f4f784887c14b7e6afe81d850c345d88..a73637c9d9e3cbccb926f02d4c749d7f3499f05d 100644 --- a/tests/value/oracle/bug_023.res.oracle +++ b/tests/value/oracle/bug_023.res.oracle @@ -5,10 +5,10 @@ [eva:initial-state] Values of globals at initialization i ∈ {0} x ∈ {0} -[eva] computing for function f <- main. - Called from bug_023.i:8. [kernel:annot:missing-spec] bug_023.i:8: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from bug_023.i:8. [eva] using specification for function f [eva] Done for function f [eva] Recording results for main diff --git a/tests/value/oracle/call.res.oracle b/tests/value/oracle/call.res.oracle index c79671e10e0b786cb0d37ab49747a34f1aee4283..90128fff00c1c50370d2d1ca961152171c50b12d 100644 --- a/tests/value/oracle/call.res.oracle +++ b/tests/value/oracle/call.res.oracle @@ -11,17 +11,17 @@ [eva:alarm] call.i:19: Warning: out of bounds read. assert \valid_read(v + 1); [eva:alarm] call.i:19: Warning: pointer downcast. assert (unsigned int)*(v + 1) ≤ 2147483647; -[eva] computing for function leaf_fun_int <- main. - Called from call.i:19. [kernel:annot:missing-spec] call.i:19: Warning: Neither code nor specification for function leaf_fun_int, generating default assigns from the prototype +[eva] computing for function leaf_fun_int <- main. + Called from call.i:19. [eva] using specification for function leaf_fun_int [eva] Done for function leaf_fun_int [eva:alarm] call.i:20: Warning: out of bounds read. assert \valid_read(v + 1); -[eva] computing for function leaf_fun_charp <- main. - Called from call.i:20. [kernel:annot:missing-spec] call.i:20: Warning: Neither code nor specification for function leaf_fun_charp, generating default assigns from the prototype +[eva] computing for function leaf_fun_charp <- main. + Called from call.i:20. [eva] using specification for function leaf_fun_charp [eva] Done for function leaf_fun_charp [eva] call.i:23: starting to merge loop iterations diff --git a/tests/value/oracle/cond.res.oracle b/tests/value/oracle/cond.res.oracle index aac8f1c4fa2916879b692a85a75a278e75d918c6..93f3f3d260d87ee3e1f656addc8ba23f990b4974 100644 --- a/tests/value/oracle/cond.res.oracle +++ b/tests/value/oracle/cond.res.oracle @@ -39,10 +39,10 @@ Called from cond.i:20. [eva] Recording results for f [eva] Done for function f -[eva] computing for function unknf <- main. - Called from cond.i:34. [kernel:annot:missing-spec] cond.i:34: Warning: Neither code nor specification for function unknf, generating default assigns from the prototype +[eva] computing for function unknf <- main. + Called from cond.i:34. [eva] using specification for function unknf [eva] Done for function unknf [eva] cond.i:37: Frama_C_show_each_2: {0; 1; 2; 4; 5; 6; 7; 8} diff --git a/tests/value/oracle/copy_stdin.res.oracle b/tests/value/oracle/copy_stdin.res.oracle index 318ef12b9de6296c6abd0e296a831f6cda7694f3..d1469e3cccbb423a7b74825f15817b2750aa0ed0 100644 --- a/tests/value/oracle/copy_stdin.res.oracle +++ b/tests/value/oracle/copy_stdin.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function leaf <- main. - Called from copy_stdin.i:4. [kernel:annot:missing-spec] copy_stdin.i:4: Warning: Neither code nor specification for function leaf, generating default assigns from the prototype +[eva] computing for function leaf <- main. + Called from copy_stdin.i:4. [eva] using specification for function leaf [eva] Done for function leaf [eva] Recording results for main diff --git a/tests/value/oracle/empty_struct.6.res.oracle b/tests/value/oracle/empty_struct.6.res.oracle index 2ef33b093bc9869ac82bdee2fd7f6146603fd8ca..712cbb8faff17c3aa431582feba6a0218a3969e1 100644 --- a/tests/value/oracle/empty_struct.6.res.oracle +++ b/tests/value/oracle/empty_struct.6.res.oracle @@ -12,10 +12,10 @@ [eva] empty_struct.c:99: Assigning imprecise value to r. The imprecision originates from Library function {empty_struct.c:99} -[eva] computing for function g <- main4. - Called from empty_struct.c:100. [kernel:annot:missing-spec] empty_struct.c:100: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main4. + Called from empty_struct.c:100. [eva] using specification for function g [eva] Done for function g [eva] Recording results for main4 diff --git a/tests/value/oracle/f1.res.oracle b/tests/value/oracle/f1.res.oracle index ea4068132c6e65355819af6b38ab7b1736130154..4b59de37098e33a310f277984b32aedd97862d2b 100644 --- a/tests/value/oracle/f1.res.oracle +++ b/tests/value/oracle/f1.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function f <- main. - Called from f1.i:5. [kernel:annot:missing-spec] f1.i:5: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from f1.i:5. [eva] using specification for function f [eva] Done for function f [eva] Recording results for main diff --git a/tests/value/oracle/false.res.oracle b/tests/value/oracle/false.res.oracle index f5540c4e17cb477acc784760bfed84ce693e62e3..25154cc12ce0807639e59e140f7c7c6ea75ede34 100644 --- a/tests/value/oracle/false.res.oracle +++ b/tests/value/oracle/false.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function f <- main. - Called from false.i:18. [kernel] false.i:18: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from false.i:18. [eva] using specification for function f [eva:alarm] false.i:18: Warning: function f: precondition i ≡ 1 got status invalid. diff --git a/tests/value/oracle/from_call.0.res.oracle b/tests/value/oracle/from_call.0.res.oracle index 2b4d8567b161b16ef2fdbb297b2a194715f46524..101005bed38dbefde5ee3959f528076e5d542172 100644 --- a/tests/value/oracle/from_call.0.res.oracle +++ b/tests/value/oracle/from_call.0.res.oracle @@ -44,10 +44,10 @@ f_previous ∈ {{ &a }} [eva] computing for function f <- main. Called from from_call.i:81. -[eva] computing for function h <- f <- main. - Called from from_call.i:20. [kernel:annot:missing-spec] from_call.i:20: Warning: Neither code nor specification for function h, generating default assigns from the prototype +[eva] computing for function h <- f <- main. + Called from from_call.i:20. [eva] using specification for function h [eva] Done for function h [eva] computing for function g <- f <- main. diff --git a/tests/value/oracle/from_call.1.res.oracle b/tests/value/oracle/from_call.1.res.oracle index 31c4e165ddfb02b9a87a9df61c7bd56ccbb21204..14097263afd44b7dd97bc7fa346a82925f1cd965 100644 --- a/tests/value/oracle/from_call.1.res.oracle +++ b/tests/value/oracle/from_call.1.res.oracle @@ -44,10 +44,10 @@ f_previous ∈ {{ &a }} [eva] computing for function f <- main. Called from from_call.i:81. -[eva] computing for function h <- f <- main. - Called from from_call.i:20. [kernel:annot:missing-spec] from_call.i:20: Warning: Neither code nor specification for function h, generating default assigns from the prototype +[eva] computing for function h <- f <- main. + Called from from_call.i:20. [eva] using specification for function h [eva] Done for function h [eva] computing for function g <- f <- main. diff --git a/tests/value/oracle/ineq.res.oracle b/tests/value/oracle/ineq.res.oracle index 22bf10d5982fbdaa347aa917108842155dd32e95..1f2d06ec970966e8c9191b178679e09853ea0157 100644 --- a/tests/value/oracle/ineq.res.oracle +++ b/tests/value/oracle/ineq.res.oracle @@ -12,10 +12,10 @@ l ∈ {1} m ∈ {-1} n ∈ {-1} -[eva] computing for function any_int <- main. - Called from ineq.c:6. [kernel:annot:missing-spec] ineq.c:6: Warning: Neither code nor specification for function any_int, generating default assigns from the prototype +[eva] computing for function any_int <- main. + Called from ineq.c:6. [eva] using specification for function any_int [eva] Done for function any_int [eva] Recording results for main diff --git a/tests/value/oracle/infinite.res.oracle b/tests/value/oracle/infinite.res.oracle index b88f0ef2e1ea05d252ed69d4f782c3d8ce4b1064..6085126abf62aef997cf6c4eb6d51861f89d4132 100644 --- a/tests/value/oracle/infinite.res.oracle +++ b/tests/value/oracle/infinite.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization G ∈ {0} -[eva] computing for function pause <- main. - Called from infinite.i:9. [kernel:annot:missing-spec] infinite.i:9: Warning: Neither code nor specification for function pause, generating default assigns from the prototype +[eva] computing for function pause <- main. + Called from infinite.i:9. [eva] using specification for function pause [eva] Done for function pause [eva] Recording results for main diff --git a/tests/value/oracle/initialized.res.oracle b/tests/value/oracle/initialized.res.oracle index 0553f68805ce659b5e8311f2399b6261a5293705..28313721c94409af21b570e0a043955e260d67e3 100644 --- a/tests/value/oracle/initialized.res.oracle +++ b/tests/value/oracle/initialized.res.oracle @@ -183,7 +183,7 @@ [eva] computing for function wrong_assigns <- g5 <- main. Called from initialized.c:127. [eva] using specification for function wrong_assigns -[eva] initialized.c:114: Warning: +[eva:ensures-false] initialized.c:114: Warning: function wrong_assigns: this postcondition evaluates to false in this context. If it is valid, either a precondition was not verified for this call, or some assigns/from clauses are incomplete (or incorrect). diff --git a/tests/value/oracle/initialized_copy.0.res.oracle b/tests/value/oracle/initialized_copy.0.res.oracle index 2832044a8141fa97c57ff81dd7daacaf40e97824..3e88f8016fc50e077dae6fbae61b9269784a3f97 100644 --- a/tests/value/oracle/initialized_copy.0.res.oracle +++ b/tests/value/oracle/initialized_copy.0.res.oracle @@ -96,10 +96,10 @@ ==END OF DUMP== [eva:alarm] initialized_copy.i:151: Warning: accessing uninitialized left-value. assert \initialized(&a_8); -[eva] computing for function g <- main. - Called from initialized_copy.i:151. [kernel:annot:missing-spec] initialized_copy.i:151: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from initialized_copy.i:151. [eva] using specification for function g [eva] Done for function g [eva] initialized_copy.i:152: diff --git a/tests/value/oracle/initialized_copy.1.res.oracle b/tests/value/oracle/initialized_copy.1.res.oracle index 99d71e0d2f64e832857ff211df6e48551bba6423..10bb9ea2fcbae4dbd27d879054e00ed62283e9f6 100644 --- a/tests/value/oracle/initialized_copy.1.res.oracle +++ b/tests/value/oracle/initialized_copy.1.res.oracle @@ -88,10 +88,10 @@ ==END OF DUMP== [eva:alarm] initialized_copy.i:151: Warning: accessing uninitialized left-value. assert \initialized(&a_8); -[eva] computing for function g <- main. - Called from initialized_copy.i:151. [kernel:annot:missing-spec] initialized_copy.i:151: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from initialized_copy.i:151. [eva] using specification for function g [eva] Done for function g [eva] initialized_copy.i:152: diff --git a/tests/value/oracle/input.res.oracle b/tests/value/oracle/input.res.oracle index ef6baf6216064ae1555e1e9a5207bf1f57f89b1c..29aae6615047adc061f32d720dd6fab271b04664 100644 --- a/tests/value/oracle/input.res.oracle +++ b/tests/value/oracle/input.res.oracle @@ -5,10 +5,10 @@ [eva:initial-state] Values of globals at initialization a ∈ {0} b ∈ {0} -[eva] computing for function f <- main. - Called from input.i:7. [kernel:annot:missing-spec] input.i:7: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from input.i:7. [eva] using specification for function f [eva] Done for function f [eva] Recording results for main diff --git a/tests/value/oracle/leaf.res.oracle b/tests/value/oracle/leaf.res.oracle index c99ce35def381874c3f25fa88cd8bc43d186a362..8b69565432950381de0d38b51c4826962f9849c6 100644 --- a/tests/value/oracle/leaf.res.oracle +++ b/tests/value/oracle/leaf.res.oracle @@ -29,10 +29,10 @@ st_tab3_int_3.t[0] ∈ {30} .t[1] ∈ {31} .t[2] ∈ {32} -[eva] computing for function f_int_int <- main. - Called from leaf.i:48. [kernel:annot:missing-spec] leaf.i:48: Warning: Neither code nor specification for function f_int_int, generating default assigns from the prototype +[eva] computing for function f_int_int <- main. + Called from leaf.i:48. [eva] using specification for function f_int_int [eva] Done for function f_int_int [eva] computing for function f_int_star_int <- main. @@ -56,70 +56,70 @@ [eva] leaf.i:57: Frama_C_show_each_F: {5} [eva] leaf.i:59: Frama_C_show_each_G: {{ &g }} [eva] leaf.i:60: Frama_C_show_each_F: {5} -[eva] computing for function f_star_int_cint <- main. - Called from leaf.i:62. [kernel:annot:missing-spec] leaf.i:62: Warning: Neither code nor specification for function f_star_int_cint, generating default assigns from the prototype +[eva] computing for function f_star_int_cint <- main. + Called from leaf.i:62. [eva] using specification for function f_star_int_cint [eva] Done for function f_star_int_cint -[eva] computing for function f_star_int_int <- main. - Called from leaf.i:64. [kernel:annot:missing-spec] leaf.i:64: Warning: Neither code nor specification for function f_star_int_int, generating default assigns from the prototype +[eva] computing for function f_star_int_int <- main. + Called from leaf.i:64. [eva] using specification for function f_star_int_int [eva] Done for function f_star_int_int -[eva] computing for function f_tab3_int_int <- main. - Called from leaf.i:65. [kernel:annot:missing-spec] leaf.i:65: Warning: Neither code nor specification for function f_tab3_int_int, generating default assigns from the prototype +[eva] computing for function f_tab3_int_int <- main. + Called from leaf.i:65. [eva] using specification for function f_tab3_int_int [eva] Done for function f_tab3_int_int -[eva] computing for function f_tab_int_int <- main. - Called from leaf.i:66. [kernel:annot:missing-spec] leaf.i:66: Warning: Neither code nor specification for function f_tab_int_int, generating default assigns from the prototype +[eva] computing for function f_tab_int_int <- main. + Called from leaf.i:66. [eva] using specification for function f_tab_int_int [eva] Done for function f_tab_int_int -[eva] computing for function f_st_star_cint_st_star_cint <- main. - Called from leaf.i:68. [kernel:annot:missing-spec] leaf.i:68: Warning: Neither code nor specification for function f_st_star_cint_st_star_cint, generating default assigns from the prototype +[eva] computing for function f_st_star_cint_st_star_cint <- main. + Called from leaf.i:68. [eva] using specification for function f_st_star_cint_st_star_cint [eva] Done for function f_st_star_cint_st_star_cint [eva] leaf.i:68: Assigning imprecise value to st_star_cint_1. The imprecision originates from Library function {leaf.i:68} -[eva] computing for function f_st_star_int_st_star_int <- main. - Called from leaf.i:69. [kernel:annot:missing-spec] leaf.i:69: Warning: Neither code nor specification for function f_st_star_int_st_star_int, generating default assigns from the prototype +[eva] computing for function f_st_star_int_st_star_int <- main. + Called from leaf.i:69. [eva] using specification for function f_st_star_int_st_star_int [eva] Done for function f_st_star_int_st_star_int [eva] leaf.i:69: Assigning imprecise value to st_star_int_1. The imprecision originates from Library function {leaf.i:69} -[eva] computing for function f_st_tab3_int_st_tab3_int <- main. - Called from leaf.i:70. [kernel:annot:missing-spec] leaf.i:70: Warning: Neither code nor specification for function f_st_tab3_int_st_tab3_int, generating default assigns from the prototype +[eva] computing for function f_st_tab3_int_st_tab3_int <- main. + Called from leaf.i:70. [eva] using specification for function f_st_tab3_int_st_tab3_int [eva] Done for function f_st_tab3_int_st_tab3_int -[eva] computing for function f_star_st_star_cint_int <- main. - Called from leaf.i:72. [kernel:annot:missing-spec] leaf.i:72: Warning: Neither code nor specification for function f_star_st_star_cint_int, generating default assigns from the prototype +[eva] computing for function f_star_st_star_cint_int <- main. + Called from leaf.i:72. [eva] using specification for function f_star_st_star_cint_int [eva] Done for function f_star_st_star_cint_int -[eva] computing for function f_star_st_star_int_int <- main. - Called from leaf.i:73. [kernel:annot:missing-spec] leaf.i:73: Warning: Neither code nor specification for function f_star_st_star_int_int, generating default assigns from the prototype +[eva] computing for function f_star_st_star_int_int <- main. + Called from leaf.i:73. [eva] using specification for function f_star_st_star_int_int [eva] Done for function f_star_st_star_int_int -[eva] computing for function f_star_st_tab3_int_int <- main. - Called from leaf.i:74. [kernel:annot:missing-spec] leaf.i:74: Warning: Neither code nor specification for function f_star_st_tab3_int_int, generating default assigns from the prototype +[eva] computing for function f_star_st_tab3_int_int <- main. + Called from leaf.i:74. [eva] using specification for function f_star_st_tab3_int_int [eva] Done for function f_star_st_tab3_int_int [eva] Recording results for main diff --git a/tests/value/oracle/leaf2.res.oracle b/tests/value/oracle/leaf2.res.oracle index 700476b6dde016a513c9bd35ad8cdba32886b8d6..c0946ca0be171fcc2ce2631d04d38a95357c9f55 100644 --- a/tests/value/oracle/leaf2.res.oracle +++ b/tests/value/oracle/leaf2.res.oracle @@ -8,10 +8,10 @@ I ∈ {0} [eva:alarm] leaf2.i:6: Warning: pointer downcast. assert (unsigned int)(&I) ≤ 2147483647; -[eva] computing for function f <- main. - Called from leaf2.i:6. [kernel:annot:missing-spec] leaf2.i:6: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from leaf2.i:6. [eva] using specification for function f [eva] Done for function f [eva] leaf2.i:6: diff --git a/tests/value/oracle/leaf_spec.0.res.oracle b/tests/value/oracle/leaf_spec.0.res.oracle index 8ceb41a435b7f6745fa1733edbcd7591b3799fac..3c6f556f1f8738ace5eb781d3063f038492700b5 100644 --- a/tests/value/oracle/leaf_spec.0.res.oracle +++ b/tests/value/oracle/leaf_spec.0.res.oracle @@ -4,36 +4,36 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function f1 <- main. - Called from leaf_spec.i:19. [kernel:annot:missing-spec] leaf_spec.i:19: Warning: Neither code nor specification for function f1, generating default assigns from the prototype +[eva] computing for function f1 <- main. + Called from leaf_spec.i:19. [eva] using specification for function f1 [eva] Done for function f1 -[eva] computing for function g <- main. - Called from leaf_spec.i:20. [kernel:annot:missing-spec] leaf_spec.i:20: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from leaf_spec.i:20. [eva] using specification for function g [eva] Done for function g -[eva] computing for function h <- main. - Called from leaf_spec.i:21. [kernel:annot:missing-spec] leaf_spec.i:21: Warning: Neither code nor specification for function h, generating default assigns from the prototype +[eva] computing for function h <- main. + Called from leaf_spec.i:21. [eva] using specification for function h [eva] Done for function h -[eva] computing for function k <- main. - Called from leaf_spec.i:22. [kernel:annot:missing-spec] leaf_spec.i:22: Warning: Neither code nor specification for function k, generating default assigns from the prototype +[eva] computing for function k <- main. + Called from leaf_spec.i:22. [eva] using specification for function k [eva:invalid-assigns] leaf_spec.i:22: Completely invalid destination for assigns clause *l. Ignoring. [eva] Done for function k -[eva] computing for function k0 <- main. - Called from leaf_spec.i:22. [kernel:annot:missing-spec] leaf_spec.i:22: Warning: Neither code nor specification for function k0, generating default assigns from the prototype +[eva] computing for function k0 <- main. + Called from leaf_spec.i:22. [eva] using specification for function k0 [eva] Done for function k0 [eva] Recording results for main diff --git a/tests/value/oracle/leaf_spec.1.res.oracle b/tests/value/oracle/leaf_spec.1.res.oracle index 5aa26ccfd381223405ebafa19b30e595c7a7550b..2f12a97cad9e6699bd162c2f4df0e4d8395797ec 100644 --- a/tests/value/oracle/leaf_spec.1.res.oracle +++ b/tests/value/oracle/leaf_spec.1.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function f <- main1. - Called from leaf_spec.i:27. [kernel:annot:missing-spec] leaf_spec.i:27: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main1. + Called from leaf_spec.i:27. [eva] using specification for function f [eva:invalid-assigns] leaf_spec.i:27: Completely invalid destination for assigns clause *x. Ignoring. diff --git a/tests/value/oracle/library.res.oracle b/tests/value/oracle/library.res.oracle index b8440bbf0b2cde6861086571dfce3f9f404ceedd..68669bb02a03d27ccbb06da61305e77d7b80a5f4 100644 --- a/tests/value/oracle/library.res.oracle +++ b/tests/value/oracle/library.res.oracle @@ -76,10 +76,10 @@ S_1_0_S_q_ss[bits 0 to ..] ∈ [--..--] or UNINITIALIZED S_0_1_S_q_ss[bits 0 to ..] ∈ [--..--] or UNINITIALIZED S_1_1_S_q_ss[bits 0 to ..] ∈ [--..--] or UNINITIALIZED -[eva] computing for function f_int <- main. - Called from library.i:30. [kernel:annot:missing-spec] library.i:30: Warning: Neither code nor specification for function f_int, generating default assigns from the prototype +[eva] computing for function f_int <- main. + Called from library.i:30. [eva] using specification for function f_int [eva] Done for function f_int [eva] computing for function f_star_int <- main. @@ -95,10 +95,10 @@ [eva:alarm] library.i:33: Warning: out of bounds read. assert \valid_read(*(*G)); [eva:alarm] library.i:33: Warning: out of bounds write. assert \valid(*(*(*G))); -[eva] computing for function gen <- main. - Called from library.i:37. [kernel:annot:missing-spec] library.i:37: Warning: Neither code nor specification for function gen, generating default assigns from the prototype +[eva] computing for function gen <- main. + Called from library.i:37. [eva] using specification for function gen [eva] Done for function gen [eva:alarm] library.i:38: Warning: diff --git a/tests/value/oracle/local_variables.res.oracle b/tests/value/oracle/local_variables.res.oracle index 982e7dbf46d78a5b9e5cd06ee6c04d4d0cf2a9ea..70764f925a71633ba2b0c359032138f30b424db5 100644 --- a/tests/value/oracle/local_variables.res.oracle +++ b/tests/value/oracle/local_variables.res.oracle @@ -13,10 +13,10 @@ Called from local_variables.i:30. [eva] computing for function w <- u <- main. Called from local_variables.i:11. -[eva] computing for function unkn <- w <- u <- main. - Called from local_variables.i:24. [kernel:annot:missing-spec] local_variables.i:24: Warning: Neither code nor specification for function unkn, generating default assigns from the prototype +[eva] computing for function unkn <- w <- u <- main. + Called from local_variables.i:24. [eva] using specification for function unkn [eva] Done for function unkn [eva] Recording results for w diff --git a/tests/value/oracle/loopfun.0.res.oracle b/tests/value/oracle/loopfun.0.res.oracle index 02f251803d78aa639a83968d99ce891aa2168226..97c9961dd442c52071b8ff9970b8a723eea6c82e 100644 --- a/tests/value/oracle/loopfun.0.res.oracle +++ b/tests/value/oracle/loopfun.0.res.oracle @@ -42,28 +42,24 @@ [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== -[from] Computing for function main -[from] Done for function main [from] Computing for function test [from] Done for function test +[from] Computing for function main +[from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: -[from] Function main: +[from] Function test: FROMTOP \result FROM ANYTHING(origin:Unknown) -[from] Function test: +[from] Function main: FROMTOP \result FROM ANYTHING(origin:Unknown) [from] ====== END OF DEPENDENCIES ====== -[inout] Out (internal) for function main: - ANYTHING(origin:Unknown) -[inout] Inputs for function main: - ANYTHING(origin:Unknown) -[inout] Out (internal) for function main2: - \nothing -[inout] Inputs for function main2: - v [inout] Out (internal) for function test: tmp; a [inout] Inputs for function test: a +[inout] Out (internal) for function main: + ANYTHING(origin:Unknown) +[inout] Inputs for function main: + ANYTHING(origin:Unknown) diff --git a/tests/value/oracle/narrow_behaviors.res.oracle b/tests/value/oracle/narrow_behaviors.res.oracle index c43c26d146781e1eef682d6fd32f623f008a80a3..32fe99abc39f02de30c9f3480ff73dc9abb0f8f7 100644 --- a/tests/value/oracle/narrow_behaviors.res.oracle +++ b/tests/value/oracle/narrow_behaviors.res.oracle @@ -105,7 +105,7 @@ function f2, behavior a: assumes got status invalid; behavior not evaluated. [eva] narrow_behaviors.i:63: function f2, behavior d: assumes got status invalid; behavior not evaluated. -[eva] narrow_behaviors.i:43: Warning: +[eva:ensures-false] narrow_behaviors.i:43: Warning: function f2, behavior c: this postcondition evaluates to false in this context. If it is valid, either a precondition was not verified for this call, or some assigns/from clauses are incomplete (or incorrect). diff --git a/tests/value/oracle/noreturn.res.oracle b/tests/value/oracle/noreturn.res.oracle index 9feb9c11794d0c339d25ef1d7a0e007ee4e9952f..0021e4852e0e59b24f5556c723b88e2561e37a68 100644 --- a/tests/value/oracle/noreturn.res.oracle +++ b/tests/value/oracle/noreturn.res.oracle @@ -16,16 +16,16 @@ Called from noreturn.i:28. [eva] Recording results for warn_never_ends [eva] Done for function warn_never_ends -[eva] computing for function stop <- main. - Called from noreturn.i:29. [kernel:annot:missing-spec] noreturn.i:29: Warning: Neither code nor specification for function stop, generating default assigns from the prototype +[eva] computing for function stop <- main. + Called from noreturn.i:29. [eva] using specification for function stop [eva] Done for function stop -[eva] computing for function haltme <- main. - Called from noreturn.i:30. [kernel:annot:missing-spec] noreturn.i:30: Warning: Neither code nor specification for function haltme, generating default assigns from the prototype +[eva] computing for function haltme <- main. + Called from noreturn.i:30. [eva] using specification for function haltme [eva] Done for function haltme [eva] computing for function never_ends <- main. diff --git a/tests/value/oracle/origin.0.res.oracle b/tests/value/oracle/origin.0.res.oracle index c310a6f5dd1fc6efa1e504fc30999195c0c4530f..a3cd9bb508d89c09a7ae8d37b6976c9410649457 100644 --- a/tests/value/oracle/origin.0.res.oracle +++ b/tests/value/oracle/origin.0.res.oracle @@ -110,10 +110,10 @@ [eva] Done for function origin_arithmetic_3 [eva] computing for function origin_leaf_1 <- main. Called from origin.i:97. -[eva] computing for function g <- origin_leaf_1 <- main. - Called from origin.i:38. [kernel:annot:missing-spec] origin.i:38: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- origin_leaf_1 <- main. + Called from origin.i:38. [eva] using specification for function g [eva] Done for function g [eva] Recording results for origin_leaf_1 diff --git a/tests/value/oracle/origin.1.res.oracle b/tests/value/oracle/origin.1.res.oracle index 0d2507fa5304be33ba086bac01b86a6b51662c6a..5ebc7d0dd4d15d7042776213e8d32beacb13d69e 100644 --- a/tests/value/oracle/origin.1.res.oracle +++ b/tests/value/oracle/origin.1.res.oracle @@ -52,10 +52,10 @@ .t[0] ∈ {{ &y }} .t[1] ∈ {0} S_gpp[0..1] ∈ [--..--] -[eva] computing for function f <- origin. - Called from origin.i:124. [kernel:annot:missing-spec] origin.i:124: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- origin. + Called from origin.i:124. [eva] using specification for function f [eva] Done for function f [eva] origin.i:126: diff --git a/tests/value/oracle/output_leafs.res.oracle b/tests/value/oracle/output_leafs.res.oracle index cda9d44678f1f73b8e299d152f62c575b59389a2..9f87300e48cebc7c507a5071b2b519a83248486c 100644 --- a/tests/value/oracle/output_leafs.res.oracle +++ b/tests/value/oracle/output_leafs.res.oracle @@ -43,10 +43,10 @@ [eva] Done for function main2 [eva] computing for function main3 <- main. Called from output_leafs.i:47. -[eva] computing for function f <- main3 <- main. - Called from output_leafs.i:40. [kernel:annot:missing-spec] output_leafs.i:40: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main3 <- main. + Called from output_leafs.i:40. [eva] using specification for function f [eva] Done for function f [eva] Recording results for main3 diff --git a/tests/value/oracle/pb.res.oracle b/tests/value/oracle/pb.res.oracle index 887817b6ca59cbb20c33216dc68a84b81375f62d..52f3bdc4e4c319f819e5968a7d2b790cf1c7fa26 100644 --- a/tests/value/oracle/pb.res.oracle +++ b/tests/value/oracle/pb.res.oracle @@ -6,10 +6,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function f <- main. - Called from pb.i:2. [kernel:annot:missing-spec] pb.i:2: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from pb.i:2. [eva] using specification for function f [eva] Done for function f [eva] Recording results for main diff --git a/tests/value/oracle/postcond_leaf.res.oracle b/tests/value/oracle/postcond_leaf.res.oracle index 0bc230cfbc6bff000ac6d050b6ca3051b54ae5d7..c1b3280dc1fa594d2aa5c84a5c614c21717f71d9 100644 --- a/tests/value/oracle/postcond_leaf.res.oracle +++ b/tests/value/oracle/postcond_leaf.res.oracle @@ -8,24 +8,24 @@ [kernel] postcond_leaf.c:109: Warning: No code nor implicit assigns clause for function f1, generating default assigns from the prototype [eva] using specification for function f1 -[eva] postcond_leaf.c:21: Warning: +[eva:ensures-false] postcond_leaf.c:21: Warning: function f1: this postcondition evaluates to false in this context. If it is valid, either a precondition was not verified for this call, or some assigns/from clauses are incomplete (or incorrect). [eva] using specification for function f2 -[eva] postcond_leaf.c:28: Warning: +[eva:ensures-false] postcond_leaf.c:28: Warning: function f2, behavior b: this postcondition evaluates to false in this context. If it is valid, either a precondition was not verified for this call, or some assigns/from clauses are incomplete (or incorrect). [eva] using specification for function f3 [eva] using specification for function f4 [eva] using specification for function g1 -[eva] postcond_leaf.c:46: Warning: +[eva:ensures-false] postcond_leaf.c:46: Warning: function g1: this postcondition evaluates to false in this context. If it is valid, either a precondition was not verified for this call, or some assigns/from clauses are incomplete (or incorrect). [eva] using specification for function g2 -[eva] postcond_leaf.c:55: Warning: +[eva:ensures-false] postcond_leaf.c:55: Warning: function g2, behavior b: this postcondition evaluates to false in this context. If it is valid, either a precondition was not verified for this call, or some assigns/from clauses are incomplete (or incorrect). diff --git a/tests/value/oracle/postcondition.res.oracle b/tests/value/oracle/postcondition.res.oracle index acbf0e9f21176c1010490011f8d6e9c66c3b5496..e714c6b9e81a3e1687803b51ffca85555e2d1ef8 100644 --- a/tests/value/oracle/postcondition.res.oracle +++ b/tests/value/oracle/postcondition.res.oracle @@ -17,10 +17,10 @@ Called from postcondition.i:84. [eva] postcondition.i:84: function get_index: precondition got status valid. [eva] postcondition.i:17: Frama_C_show_each_cmd: {1} -[eva] computing for function u <- get_index <- main. - Called from postcondition.i:20. [kernel] postcondition.i:20: Warning: No code nor implicit assigns clause for function u, generating default assigns from the prototype +[eva] computing for function u <- get_index <- main. + Called from postcondition.i:20. [eva] using specification for function u [eva] Done for function u [eva] postcondition.i:18: starting to merge loop iterations @@ -74,10 +74,10 @@ [eva] computing for function u <- main. Called from postcondition.i:88. [eva] Done for function u -[eva] computing for function cap <- main. - Called from postcondition.i:89. [kernel] postcondition.i:89: Warning: No code nor implicit assigns clause for function cap, generating default assigns from the prototype +[eva] computing for function cap <- main. + Called from postcondition.i:89. [eva] using specification for function cap [eva] Done for function cap [eva] computing for function u <- main. diff --git a/tests/value/oracle/precond.res.oracle b/tests/value/oracle/precond.res.oracle index d7cae39457b89da747d7bcb336d8ad742c310c61..01008cd04905b7032567375d16efff639f56a92a 100644 --- a/tests/value/oracle/precond.res.oracle +++ b/tests/value/oracle/precond.res.oracle @@ -17,19 +17,19 @@ [eva] precond.c:32: function f: precondition 'i' got status valid. [eva] Recording results for f [eva] Done for function f -[eva] computing for function g <- main. - Called from precond.c:34. [kernel] precond.c:34: Warning: No code nor implicit assigns clause for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from precond.c:34. [eva] using specification for function g [eva:alarm] precond.c:34: Warning: function g: precondition got status unknown. [eva] Done for function g [eva] computing for function aux <- main. Called from precond.c:36. -[eva] computing for function f2 <- aux <- main. - Called from precond.c:21. [kernel] precond.c:21: Warning: No code nor implicit assigns clause for function f2, generating default assigns from the prototype +[eva] computing for function f2 <- aux <- main. + Called from precond.c:21. [eva] using specification for function f2 [eva] precond.c:21: function f2: precondition got status valid. [eva] Done for function f2 diff --git a/tests/value/oracle/precond2.0.res.oracle b/tests/value/oracle/precond2.0.res.oracle index 10ee7cb691c71c333a96e0b869b71de6781c3e6c..bdee5be00a85220edd6ceda78281a48e0c6970d1 100644 --- a/tests/value/oracle/precond2.0.res.oracle +++ b/tests/value/oracle/precond2.0.res.oracle @@ -19,10 +19,10 @@ function f: precondition 'i' got status invalid. [eva] Recording results for f [eva] Done for function f -[eva] computing for function g <- main. - Called from precond2.c:24. [kernel] precond2.c:24: Warning: No code nor implicit assigns clause for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from precond2.c:24. [eva] using specification for function g [eva] precond2.c:24: function g: precondition got status valid. [eva] Done for function g diff --git a/tests/value/oracle/precond2.1.res.oracle b/tests/value/oracle/precond2.1.res.oracle index 4787a711af49ec5c93398aa4513386bbb9d207e3..39929885285698e3c2746bd5c6e002c64c3dbfb1 100644 --- a/tests/value/oracle/precond2.1.res.oracle +++ b/tests/value/oracle/precond2.1.res.oracle @@ -17,10 +17,10 @@ function f: precondition 'i' got status invalid. [eva] Recording results for f [eva] Done for function f -[eva] computing for function g <- main. - Called from precond2.c:24. [kernel] precond2.c:24: Warning: No code nor implicit assigns clause for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from precond2.c:24. [eva] using specification for function g [eva] precond2.c:24: function g: precondition got status valid. [eva] Done for function g diff --git a/tests/value/oracle/recursion.0.res.oracle b/tests/value/oracle/recursion.0.res.oracle index b3ec9d36b5fdae0cc388266e62a86c0923be54f7..fddbfe1a8217d8ef30018ab273fc6bef1acfb8ed 100644 --- a/tests/value/oracle/recursion.0.res.oracle +++ b/tests/value/oracle/recursion.0.res.oracle @@ -133,6 +133,13 @@ [eva:alarm] recursion.c:182: Warning: function even_ptr: postcondition got status unknown. [eva:recursion] recursion.c:174: detected recursive call of function even_ptr. +[eva] recursion.c:174: Warning: + Using specification of function even_ptr for recursive calls. + Analysis of function even_ptr is thus incomplete and its soundness + relies on the written specification. +[eva] using specification for function even_ptr +[eva:alarm] recursion.c:175: Warning: + accessing uninitialized left-value. assert \initialized(&x); [eva] recursion.c:383: Frama_C_show_each_1: {1}, {1} [eva] recursion.c:386: Frama_C_show_each_0: {0}, {0} [eva] using specification for function Frama_C_interval diff --git a/tests/value/oracle/resolve.res.oracle b/tests/value/oracle/resolve.res.oracle index 1e2c42f7cc62a8c8b872a4c619c6e54d4dd16954..defb6792df4472409e9108e75305196444788196 100644 --- a/tests/value/oracle/resolve.res.oracle +++ b/tests/value/oracle/resolve.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function f <- main. - Called from resolve.i:12. [kernel:annot:missing-spec] resolve.i:12: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from resolve.i:12. [eva] using specification for function f [eva] Done for function f [eva] Recording results for main diff --git a/tests/value/oracle/semaphore.res.oracle b/tests/value/oracle/semaphore.res.oracle index de195078b4da65e6526db33fd251edd0e6012669..cf0fba3e324ab5400ec7fc116d77d940581e3e77 100644 --- a/tests/value/oracle/semaphore.res.oracle +++ b/tests/value/oracle/semaphore.res.oracle @@ -5,10 +5,10 @@ [eva:initial-state] Values of globals at initialization Sa ∈ {0} Sb ∈ {0} -[eva] computing for function V <- g. - Called from semaphore.i:31. [kernel:annot:missing-spec] semaphore.i:31: Warning: Neither code nor specification for function V, generating default assigns from the prototype +[eva] computing for function V <- g. + Called from semaphore.i:31. [eva] using specification for function V [eva] Done for function V [eva] semaphore.i:29: starting to merge loop iterations @@ -22,10 +22,10 @@ Called from semaphore.i:31. [eva] Done for function V [eva] semaphore.i:28: starting to merge loop iterations -[eva] computing for function P <- g. - Called from semaphore.i:34. [kernel:annot:missing-spec] semaphore.i:34: Warning: Neither code nor specification for function P, generating default assigns from the prototype +[eva] computing for function P <- g. + Called from semaphore.i:34. [eva] using specification for function P [eva] Done for function P [eva] computing for function P <- g. diff --git a/tests/value/oracle/strings.res.oracle b/tests/value/oracle/strings.res.oracle index 7301164cb25036d22ed3e9da6cac60f15e358038..f6dca26f664107f8afc93860a8b2b367eee8d150 100644 --- a/tests/value/oracle/strings.res.oracle +++ b/tests/value/oracle/strings.res.oracle @@ -40,10 +40,10 @@ Z ∈ {0} [eva] computing for function string_reads <- main. Called from strings.i:142. -[eva] computing for function u <- string_reads <- main. - Called from strings.i:39. [kernel:annot:missing-spec] strings.i:39: Warning: Neither code nor specification for function u, generating default assigns from the prototype +[eva] computing for function u <- string_reads <- main. + Called from strings.i:39. [eva] using specification for function u [eva] Done for function u [eva:alarm] strings.i:39: Warning: diff --git a/tests/value/oracle/summary.3.res.oracle b/tests/value/oracle/summary.3.res.oracle index dc0ab11b5660f5d184bc56375b5d3586dc795f57..5d8c312f33f90a61c9ac6f269a9b4d9561fe6739 100644 --- a/tests/value/oracle/summary.3.res.oracle +++ b/tests/value/oracle/summary.3.res.oracle @@ -52,16 +52,16 @@ assertion got status invalid (stopping propagation). [eva] Recording results for logic [eva] Done for function logic -[eva] computing for function f <- main. - Called from summary.i:64. [kernel:annot:missing-spec] summary.i:64: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from summary.i:64. [eva] using specification for function f [eva] Done for function f -[eva] computing for function g <- main. - Called from summary.i:65. [kernel:annot:missing-spec] summary.i:65: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from summary.i:65. [eva] using specification for function g [eva] Done for function g [eva] Recording results for main diff --git a/tests/value/oracle/summary.4.res.oracle b/tests/value/oracle/summary.4.res.oracle index 81eb244352197d5f99e3c7f35bb16ba46ccbe574..5610a4663e51979179219c0c9d4a542bfb287c58 100644 --- a/tests/value/oracle/summary.4.res.oracle +++ b/tests/value/oracle/summary.4.res.oracle @@ -74,16 +74,16 @@ assertion got status invalid (stopping propagation). [eva] Recording results for logic [eva] Done for function logic -[eva] computing for function f <- main. - Called from summary.i:64. [kernel:annot:missing-spec] summary.i:64: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from summary.i:64. [eva] using specification for function f [eva] Done for function f -[eva] computing for function g <- main. - Called from summary.i:65. [kernel:annot:missing-spec] summary.i:65: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from summary.i:65. [eva] using specification for function g [eva] Done for function g [eva] Recording results for main diff --git a/tests/value/oracle/switch2.res.oracle b/tests/value/oracle/switch2.res.oracle index 52037497ce51b4a7c161947bb78d1275461c30ff..93846958e7c6b1df55c67213acc6c7e2ce6f53fd 100644 --- a/tests/value/oracle/switch2.res.oracle +++ b/tests/value/oracle/switch2.res.oracle @@ -8,10 +8,10 @@ Called from switch2.i:13. [eva] Recording results for f [eva] Done for function f -[eva] computing for function g <- main. - Called from switch2.i:13. [kernel:annot:missing-spec] switch2.i:13: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from switch2.i:13. [eva] using specification for function g [eva] Done for function g [eva] Recording results for main diff --git a/tests/value/oracle/undef_fct.res.oracle b/tests/value/oracle/undef_fct.res.oracle index 738e41a5ec2f5fda6a25510ee6fb66db84390151..1266df08b00565dbcde9742413e4d85f934dc556 100644 --- a/tests/value/oracle/undef_fct.res.oracle +++ b/tests/value/oracle/undef_fct.res.oracle @@ -6,10 +6,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function f <- main. - Called from undef_fct.i:3. [kernel:annot:missing-spec] undef_fct.i:3: Warning: Neither code nor specification for function f, generating default assigns from the prototype +[eva] computing for function f <- main. + Called from undef_fct.i:3. [eva] using specification for function f [eva] Done for function f [eva] Recording results for main diff --git a/tests/value/oracle/use_spec.0.res.oracle b/tests/value/oracle/use_spec.0.res.oracle index 91cc617b674eea1bd545678e4bae3bf1cb127695..e999d6f573cb0e0d9b5e643c52a2139be92e0c8b 100644 --- a/tests/value/oracle/use_spec.0.res.oracle +++ b/tests/value/oracle/use_spec.0.res.oracle @@ -16,10 +16,10 @@ Called from use_spec.i:25. [eva] using specification for function f [eva] Done for function f -[eva] computing for function g <- main. - Called from use_spec.i:26. [kernel:annot:missing-spec] use_spec.i:26: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from use_spec.i:26. [eva] using specification for function g [eva] Done for function g [eva] computing for function h <- main. diff --git a/tests/value/oracle/use_spec.1.res.oracle b/tests/value/oracle/use_spec.1.res.oracle index e06b8f503520e0a62d75ffb1b67abb3278ced7ed..509dad58e05892aeec5263d1b953f5d9db54bb68 100644 --- a/tests/value/oracle/use_spec.1.res.oracle +++ b/tests/value/oracle/use_spec.1.res.oracle @@ -16,10 +16,10 @@ Called from use_spec.i:25. [eva] using specification for function f [eva] Done for function f -[eva] computing for function g <- main. - Called from use_spec.i:26. [kernel:annot:missing-spec] use_spec.i:26: Warning: Neither code nor specification for function g, generating default assigns from the prototype +[eva] computing for function g <- main. + Called from use_spec.i:26. [eva] using specification for function g [eva] Done for function g [eva] computing for function h <- main. diff --git a/tests/value/oracle/va_list.0.res.oracle b/tests/value/oracle/va_list.0.res.oracle index 109901ba36a77c3204732e985e1ce444a69e5407..69b64d84e22aeec36515fb428b3431b527868fca 100644 --- a/tests/value/oracle/va_list.0.res.oracle +++ b/tests/value/oracle/va_list.0.res.oracle @@ -8,10 +8,10 @@ creating variable S_0_S___va_params with imprecise size (type void) [eva:initial-state] creating variable S_1_S___va_params with imprecise size (type void) -[eva] computing for function __builtin_next_arg <- main. - Called from va_list.c:14. [kernel:annot:missing-spec] va_list.c:14: Warning: Neither code nor specification for function __builtin_next_arg, generating default assigns from the prototype +[eva] computing for function __builtin_next_arg <- main. + Called from va_list.c:14. [eva] using specification for function __builtin_next_arg [eva] Done for function __builtin_next_arg [eva] Recording results for main diff --git a/tests/value/oracle/va_list.1.res.oracle b/tests/value/oracle/va_list.1.res.oracle index b2650b533eff03b5ffbbb1d7985c695cfa6f51d1..77f3d371928e7bf65952e8a4bd0b46f99fbaee27 100644 --- a/tests/value/oracle/va_list.1.res.oracle +++ b/tests/value/oracle/va_list.1.res.oracle @@ -4,10 +4,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function __builtin_next_arg <- main. - Called from va_list.c:14. [kernel:annot:missing-spec] va_list.c:14: Warning: Neither code nor specification for function __builtin_next_arg, generating default assigns from the prototype +[eva] computing for function __builtin_next_arg <- main. + Called from va_list.c:14. [eva] using specification for function __builtin_next_arg [eva] va_list.c:14: User Error: functions returning variadic arguments must be stubbed diff --git a/tests/value/oracle/va_list2.1.res.oracle b/tests/value/oracle/va_list2.1.res.oracle index 93afb0592bc75eb294262723678d451390130efe..8cd4da46460a0cb794978cdc83381675772311a0 100644 --- a/tests/value/oracle/va_list2.1.res.oracle +++ b/tests/value/oracle/va_list2.1.res.oracle @@ -4,17 +4,17 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function __builtin_va_start <- main. - Called from va_list2.c:11. [kernel:annot:missing-spec] va_list2.c:11: Warning: Neither code nor specification for function __builtin_va_start, generating default assigns from the prototype +[eva] computing for function __builtin_va_start <- main. + Called from va_list2.c:11. [eva] using specification for function __builtin_va_start [eva] Done for function __builtin_va_start [eva:alarm] va_list2.c:12: Warning: out of bounds read. assert \valid_read(fmt); -[eva] computing for function __builtin_va_arg <- main. - Called from va_list2.c:15. [kernel:annot:missing-spec] va_list2.c:15: Warning: Neither code nor specification for function __builtin_va_arg, generating default assigns from the prototype +[eva] computing for function __builtin_va_arg <- main. + Called from va_list2.c:15. [eva] using specification for function __builtin_va_arg [eva] Done for function __builtin_va_arg [eva:alarm] va_list2.c:15: Warning: @@ -45,10 +45,10 @@ [eva] Done for function __builtin_va_arg [eva] va_list2.c:21: Frama_C_show_each_f: [-3.40282346639e+38 .. 3.40282346639e+38] -[eva] computing for function __builtin_va_end <- main. - Called from va_list2.c:28. [kernel:annot:missing-spec] va_list2.c:28: Warning: Neither code nor specification for function __builtin_va_end, generating default assigns from the prototype +[eva] computing for function __builtin_va_end <- main. + Called from va_list2.c:28. [eva] using specification for function __builtin_va_end [eva] Done for function __builtin_va_end [eva] Recording results for main diff --git a/tests/value/oracle/volatile.res.oracle b/tests/value/oracle/volatile.res.oracle index 13de58ca7e95266d0f9b1b51c7b0e8f034edf31e..b53a798a5f7c73bcf06d26caccadc1451211679d 100644 --- a/tests/value/oracle/volatile.res.oracle +++ b/tests/value/oracle/volatile.res.oracle @@ -55,10 +55,10 @@ signed overflow. assert x_0 + y_0 ≤ 2147483647; [eva] Recording results for fn1 [eva] Done for function fn1 -[eva] computing for function fn2 <- main1 <- main. - Called from volatile.c:40. [kernel:annot:missing-spec] volatile.c:40: Warning: Neither code nor specification for function fn2, generating default assigns from the prototype +[eva] computing for function fn2 <- main1 <- main. + Called from volatile.c:40. [eva] using specification for function fn2 [eva] Done for function fn2 [eva] volatile.c:41: Frama_C_show_each_d: [-2147483648..2147483647] diff --git a/tests/value/oracle/widen_overflow.res.oracle b/tests/value/oracle/widen_overflow.res.oracle index 7dcb1b7df9e8dcd13231c31fc447b8b15a339b81..acaa81473fe37d047ff6fe8a31cebccec426c28d 100644 --- a/tests/value/oracle/widen_overflow.res.oracle +++ b/tests/value/oracle/widen_overflow.res.oracle @@ -7,10 +7,10 @@ [eva:initial-state] Values of globals at initialization [eva] widen_overflow.i:6: Frama_C_show_each: {4} -[eva] computing for function u <- main. - Called from widen_overflow.i:9. [kernel:annot:missing-spec] widen_overflow.i:9: Warning: Neither code nor specification for function u, generating default assigns from the prototype +[eva] computing for function u <- main. + Called from widen_overflow.i:9. [eva] using specification for function u [eva] Done for function u [eva] widen_overflow.i:9: starting to merge loop iterations diff --git a/tests/value/traces/oracle/test5.res.oracle b/tests/value/traces/oracle/test5.res.oracle index c3e94b81b6317e06c8284fddac7fb8784b329e78..65e159b215ac3cdbfd7881b377f7c6fac1cd2d06 100644 --- a/tests/value/traces/oracle/test5.res.oracle +++ b/tests/value/traces/oracle/test5.res.oracle @@ -7,10 +7,10 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva] computing for function my_switch <- main. - Called from test5.i:21. [kernel:annot:missing-spec] test5.i:21: Warning: Neither code nor specification for function my_switch, generating default assigns from the prototype +[eva] computing for function my_switch <- main. + Called from test5.i:21. [eva] using specification for function my_switch [eva] Done for function my_switch [eva:alarm] test5.i:21: Warning: