File: copy_logic.res.oracle

package info (click to toggle)
frama-c 20161101%2Bsilicon%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 42,324 kB
  • ctags: 35,695
  • sloc: ml: 200,142; ansic: 31,465; makefile: 2,334; sh: 1,643; lisp: 259; python: 85; asm: 26
file content (45 lines) | stat: -rw-r--r-- 1,619 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/syntax/copy_logic.i (no preprocessing)
tests/syntax/copy_logic.i:5:[kernel] warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead.
tests/syntax/copy_logic.i:7:[kernel] warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead.
[value] Analyzing a complete application starting at main
[value] Computing initial state
[value] Initial state computed
[value:initial-state] Values of globals at initialization
  
tests/syntax/copy_logic.i:16:[value] warning: assertion got status unknown.
tests/syntax/copy_logic.i:17:[value] warning: signed overflow. assert y + x ≤ 2147483647;
tests/syntax/copy_logic.i:18:[value] cannot evaluate ACSL term, unsupported ACSL construct: logic functions or predicates
tests/syntax/copy_logic.i:18:[value] warning: assertion got status unknown.
[value] Recording results for main
[value] done for function main
[value] ====== VALUES COMPUTED ======
[value:final-states] Values at end of function main:
  y ∈ [-2147483606..2147483647]
  __retres ∈ {0}
/* Generated by Frama-C */
/*@ predicate p(int x) ;
 */
/*@ predicate q(int x) = x ≡ 42;
 */
/*@ logic int f(int y) ;
 */
/*@ logic ℤ g(int x) = x + 42;
 */
/*@ frees x; */
extern void f(int *x);

int main(int x)
{
  int __retres;
  int y;
  y = 42;
  /*@ assert q(y) ∧ p(x); */ ;
  /*@ assert Value: signed_overflow: y + x ≤ 2147483647; */
  y += x;
  /*@ assert g(x) ≡ f(y); */ ;
  __retres = 0;
  return __retres;
}