Project

General

Profile

getchar1.c

C code - Sepideh Asadi, 20/10/2017 02:39

 
1
#define SIZE 256
2
#define EOF -1
3
#define ERROR -1
4

    
5
int lookup[SIZE];
6

    
7
int nondet_int(); 
8

    
9
int getchar() {
10
  int x = nondet_int(); 
11

    
12
  __CPROVER_assume(x <= 255);
13
  __CPROVER_assume(x >= -1);
14
  return x;
15
}
16

    
17
int choice(int a, int b) {
18
    if (a < 0 || a >= SIZE)
19
        return ERROR;
20
    if (b < 0 || b >= SIZE)
21
        return ERROR;
22

    
23
    int av = getchar();
24
    int bv = getchar();
25

    
26
    if (av >= bv)
27
        return a;
28
    return b;
29
}
30

    
31

    
32
int main() {
33
    int x, y, t;
34

    
35
    t = choice(10, 20);
36
    assert (t == 10 || t == 20);
37
}