Skip to content

Commit e9b5f5c

Browse files
authored
Merge pull request #6095 from tautschnig/sleep
C library: make sleep() branch free
2 parents 41042e2 + 50d64cd commit e9b5f5c

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
#include <assert.h>
2-
#include <unistd.h>
2+
#ifndef _WIN32
3+
# include <unistd.h>
4+
#else
5+
unsigned sleep(unsigned);
6+
#endif
37

48
int main()
59
{
6-
sleep();
7-
assert(0);
10+
assert(sleep(42) <= 42);
811
return 0;
912
}

regression/cbmc-library/sleep-01/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
main.c
33
--pointer-check --bounds-check
44
^EXIT=0$

src/ansi-c/library/unistd.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ unsigned int sleep(unsigned int seconds)
77
__CPROVER_HIDE:;
88
// do nothing, but return nondet value
99
unsigned remaining_time=__VERIFIER_nondet_unsigned();
10-
11-
if(remaining_time>seconds) remaining_time=seconds;
10+
__CPROVER_assume(remaining_time <= seconds);
1211

1312
return remaining_time;
1413
}

0 commit comments

Comments
 (0)