File: leaf.i

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 (70 lines) | stat: -rw-r--r-- 2,174 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
int T[30] = {1};

int   f_int_int(int x);
int * f_int_star_int(int x);
int **f_int_star_int_star_int(int x);

int f_star_int_cint(const int *x);

/* 3 identicals prototypes */
int f_star_int_int(int *x);
int f_tab_int_int(int x[]);
int f_tab3_int_int(int x[3]);

int cv1=10, cv2=20, cv3=30 ;
struct _st_star_cint { const int * const p ; }
  st_star_cint_1={&cv1},
  st_star_cint_2={&cv2},
  st_star_cint_3={&cv3} ;

int v1=10, v2=20, v3=30 ;
struct _st_star_int { int * p ; }
  st_star_int_1={&v1},
  st_star_int_2={&v2},
  st_star_int_3={&v3} ;

struct _st_tab3_int { int t[3] ; }
  st_tab3_int_1={10, 11, 12},
  st_tab3_int_2={20, 21, 22},
  st_tab3_int_3={30, 31, 32} ;

struct _st_star_cint f_st_star_cint_st_star_cint(struct _st_star_cint s) ;
struct _st_star_int  f_st_star_int_st_star_int (struct _st_star_int s) ;
struct _st_tab3_int  f_st_tab3_int_st_tab3_int (struct _st_tab3_int s) ;

int f_star_st_star_cint_int (struct _st_star_cint * s) ;
int f_star_st_star_int_int (struct _st_star_int * s) ;
int f_star_st_tab3_int_int (struct _st_tab3_int * s) ;

void main() {
  int c,d;
  T[0]=f_int_int(0); /* T[0] modified */
  
  int *p = f_int_star_int(0);
  Frama_C_show_each_F(*p);
  *p = 5;
  Frama_C_show_each_F(*p);

  int **pp  =f_int_star_int_star_int(0);
  Frama_C_show_each_G(*pp);
  Frama_C_show_each_F(**pp);
//  if (*pp==&d) **pp = 6;
  Frama_C_show_each_G(*pp);
  Frama_C_show_each_F(**pp);

  T[2]=f_star_int_cint(&T[3]); /* T[2] modified */

  f_star_int_int(&(T[4])); /* only T[4] modified */
  f_tab3_int_int(&T[6]);   /* only T[6..8] modified */
  f_tab_int_int(&T[10]);   /* only T[10] modified */

  st_star_cint_1 = f_st_star_cint_st_star_cint(st_star_cint_2); /* only st_star_cint_1 modified */
  st_star_int_1  = f_st_star_int_st_star_int (st_star_int_2) ;  /* st_star_int_1 modifed, v2 SHOULD BE modified */
  st_tab3_int_1  = f_st_tab3_int_st_tab3_int (st_tab3_int_2) ;  /* only st_tab3_int_1 modified */
  
  f_star_st_star_cint_int(&st_star_cint_3); /* st_star_cint_3.p modified */
  f_star_st_star_int_int (&st_star_int_3) ; /* v3 SHOULD BE modified */
  f_star_st_tab3_int_int (&st_tab3_int_3) ; /* st_tab3_int_3 SHOULD BE modified */

}