Can ACSL denote that an assignment should be hidden?
up vote
1
down vote
favorite
This function mocks a function that returns a continuously rising value until overflow occurs. It is like the millis() function in Arduino. To prove the implementation, I need to increment (thus, assign) static variables to keep state between invocations. However, a function that calls mock_millis() should still be able to assign nothing . Is there a way to make WP ignore the assigns clause? static int64_t microseconds = 0; /*@ assigns milliseconds; behavior normal: assumes milliseconds < INT64_MAX; ensures result == old(milliseconds) + 1; ensures milliseconds == old(milliseconds) + 1; behavior overflow: assumes milliseconds == INT64_MAX; ensures result == 0; ensures milliseconds == 0; complete behaviors normal, overflow; disjoi