File: context_width.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 (114 lines) | stat: -rw-r--r-- 4,062 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/value/context_width.i (no preprocessing)
[value] Analyzing a complete application starting at main
[value] Computing initial state
[value] Initial state computed
[value:initial-state] Values of globals at initialization
  a ∈ {0}
tests/value/context_width.i:10:[value] warning: pointer comparison. assert \pointer_comparable((void *)(p + 2), (void *)0);
tests/value/context_width.i:12:[value] warning: pointer comparison.
                 assert \pointer_comparable((void *)(p + 1), (void *)(&a));
tests/value/context_width.i:15:[value] warning: out of bounds write. assert \valid(p + 1);
tests/value/context_width.i:16:[value] warning: out of bounds write. assert \valid(p + 2);
tests/value/context_width.i:17:[value] warning: assertion got status invalid (stopping propagation).
[value] Recording results for main
[value] done for function main
[value] ====== VALUES COMPUTED ======
[value:final-states] Values at end of function main:
  S_p[0] ∈ {1}
     [1] ∈ {2}
     [2] ∈ {3}
[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:
  S_p[0..2] FROM p (and SELF)
[from] ====== END OF DEPENDENCIES ======
[inout] Out (internal) for function main:
          S_p[0..2]
[inout] Inputs for function main:
          \nothing
/* Generated by Frama-C */
int a;
void main(int *p)
{
  if (! (p == (int *)0)) {
    if (! (p + 1 == (int *)0)) 
      /*@ assert
          Value: ptr_comparison:
            \pointer_comparable((void *)(p + 2), (void *)0);
      */
      if (! (p + 2 == (int *)0)) ;
    /*@ assert
        Value: ptr_comparison:
          \pointer_comparable((void *)(p + 1), (void *)(&a));
    */
    if (p + 1 == & a) ;
    *p = 1;
    /*@ assert Value: mem_access: \valid(p + 1); */
    *(p + 1) = 2;
    /*@ assert Value: mem_access: \valid(p + 2); */
    *(p + 2) = 3;
  }
  else 
    /*@ assert \false; */ ;
  return;
}


[value] Analyzing a complete application starting at main
[value] Computing initial state
[value] Initial state computed
[value:initial-state] Values of globals at initialization
  a ∈ {0}
tests/value/context_width.i:10:[value] warning: pointer comparison. assert \pointer_comparable((void *)(p + 2), (void *)0);
tests/value/context_width.i:12:[value] warning: pointer comparison.
                 assert \pointer_comparable((void *)(p + 1), (void *)(&a));
tests/value/context_width.i:15:[value] warning: out of bounds write. assert \valid(p + 1);
tests/value/context_width.i:15:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
[value] Recording results for main
[value] done for function main
tests/value/context_width.i:15:[value] assertion 'Value,mem_access' got final status invalid.
[value] ====== VALUES COMPUTED ======
[value:final-states] Values at end of function main:
  NON TERMINATING FUNCTION
[from] Computing for function main
[from] Non-terminating function main (no dependencies)
[from] Done for function main
[from] ====== DEPENDENCIES COMPUTED ======
       These dependencies hold at termination for the executions that terminate:
[from] Function main:
  NON TERMINATING - NO EFFECTS
[from] ====== END OF DEPENDENCIES ======
[inout] Out (internal) for function main:
          S_p_0[0]
[inout] Inputs for function main:
          \nothing
/* Generated by Frama-C */
int a;
void main(int *p)
{
  if (! (p == (int *)0)) {
    if (! (p + 1 == (int *)0)) 
      /*@ assert
          Value: ptr_comparison:
            \pointer_comparable((void *)(p + 2), (void *)0);
      */
      if (! (p + 2 == (int *)0)) ;
    /*@ assert
        Value: ptr_comparison:
          \pointer_comparable((void *)(p + 1), (void *)(&a));
    */
    if (p + 1 == & a) ;
    *p = 1;
    /*@ assert Value: mem_access: \valid(p + 1); */
    *(p + 1) = 2;
    *(p + 2) = 3;
  }
  else 
    /*@ assert \false; */ ;
  return;
}