Skip to content
This repository was archived by the owner on Oct 3, 2021. It is now read-only.

Commit dfe8b22

Browse files
committed
Fix loops with non-deterministic bound
Instead of adding a "while (1)", I should have added a "while (__VERIFIER_nondet_bool())" whenever the loop condition was empty.
1 parent 99fe631 commit dfe8b22

16 files changed

+16
-16
lines changed

c/loop-zilu/benchmark01_conjunctive.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ int main() {
2828
int y = __VERIFIER_nondet_int();
2929

3030
if (!(x==1 && y==1)) return 0;
31-
while (1) {
31+
while (__VERIFIER_nondet_bool()) {
3232
x=x+y;
3333
y=x;
3434
}

c/loop-zilu/benchmark03_linear.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ int main() {
3333
_Bool flag = __VERIFIER_nondet_bool();
3434
x = 0; y = 0;
3535
if (!(i==0 && j==0)) return 0;
36-
while (1) {
36+
while (__VERIFIER_nondet_bool()) {
3737
x++;
3838
y++;
3939
i+=x;

c/loop-zilu/benchmark06_conjunctive.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ int main() {
3131
int k = __VERIFIER_nondet_int();
3232
j=0;
3333
if (!(x+y==k)) return 0;
34-
while (1) {
34+
while (__VERIFIER_nondet_bool()) {
3535
if(j==i) {x++;y--;} else {y++;x--;} j++;
3636
}
3737
__VERIFIER_assert(x+y==k);

c/loop-zilu/benchmark12_linear.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ int main() {
2929
int t = __VERIFIER_nondet_int();
3030

3131
if (!(x!=y && y==t)) return 0;
32-
while (1) {
32+
while (__VERIFIER_nondet_bool()) {
3333
if(x>0) y=y+x;
3434
}
3535
__VERIFIER_assert(y>=t);

c/loop-zilu/benchmark16_conjunctive.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ int main() {
2424
int i = __VERIFIER_nondet_int();
2525
int k = __VERIFIER_nondet_int();
2626
if (!(0 <= k && k <= 1 && i == 1)) return 0;
27-
while (1) {
27+
while (__VERIFIER_nondet_bool()) {
2828
i = i + 1;
2929
k = k - 1;
3030
}

c/loop-zilu/benchmark22_conjunctive.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ int main() {
2424
int x = __VERIFIER_nondet_int();
2525
int y = __VERIFIER_nondet_int();
2626
if (!(x==1 && y==0)) return 0;
27-
while (1) {
27+
while (__VERIFIER_nondet_bool()) {
2828
x=x+y;
2929
y++;
3030
}

c/loop-zilu/benchmark30_conjunctive.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ int main() {
2424
int x = __VERIFIER_nondet_int();
2525
int y = __VERIFIER_nondet_int();
2626
if (!(y == x)) return 0;
27-
while (1) {
27+
while (__VERIFIER_nondet_bool()) {
2828
x++;
2929
y++;
3030
}

c/loop-zilu/benchmark32_linear.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ int main() {
2727
int x = __VERIFIER_nondet_int();
2828

2929
if (!(x==1 || x==2)) return 0;
30-
while (1) {
30+
while (__VERIFIER_nondet_bool()) {
3131
if(x==1) x=2;
3232
else if (x==2) x=1;
3333
}

c/loop-zilu/benchmark36_conjunctive.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ int main() {
2525
int x = __VERIFIER_nondet_int();
2626
int y = __VERIFIER_nondet_int();
2727
if (!(x == y && y == 0)) return 0;
28-
while (1) {
28+
while (__VERIFIER_nondet_bool()) {
2929
x++;y++;
3030
}
3131
__VERIFIER_assert(x == y && x >= 0);

c/loop-zilu/benchmark38_conjunctive.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ int main() {
2525
int x = __VERIFIER_nondet_int();
2626
int y = __VERIFIER_nondet_int();
2727
if (!(x == y && y == 0)) return 0;
28-
while (1) {
28+
while (__VERIFIER_nondet_bool()) {
2929
x+=4;y++;
3030
}
3131
__VERIFIER_assert(x == 4*y && x >= 0);

0 commit comments

Comments
 (0)