Skip to content

Instantly share code, notes, and snippets.

View TrigDevelopment's full-sized avatar

TrigDeveloper1 TrigDevelopment

View GitHub Profile
struct container {
int counter;
};
/*@ requires \valid(some_container);
requires some_container->counter == 0;
ensures \result->counter == \at(\result->counter, Pre) + 1;
*/
struct container * f(struct container * some_container) {
some_container->counter = 1;
#define INT_MAX 2147483647
typedef struct {
int counter;
} atomic_t;
/*@ requires v.counter < INT_MAX;
ensures v.counter == \old(v.counter) + 1;
*/
static inline void atomic_inc(atomic_t v);
typedef struct {
int counter;
} atomic_t;
/*@ ensures v.counter == \old(v.counter) + 1;
*/
static inline void atomic_inc(atomic_t v);
/*@ assigns \nothing;
ensures 1 == 0;
int a;
int b;
/*@ behavior ChangeA:
assumes argument == 0;
assigns a;
behavior ChangeB:
assumes argument == 1;
assigns b;
*/
int a;
int b;
/*@ assigns argument == 0 ? a : b;
*/
void f(int argument)
{
if (argument == 0)
{
a = 1;
int a;
int b;
void child(int child_argument);
/*@ requires parent_argument == 0;
assigns a;
*/
void parent(int parent_argument)
{
child(parent_argument);