getchar1.c
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 |
} |