// verifast_options{disable_overflow_check target:ILP32} extern void abort(void); //@ requires true; //@ ensures true; void reach_error() //@ requires false; //@ ensures true; {} /* Licensed under the GPLv2 */ int main(int argc, char **argv) //@ requires module(heavy_2__verifast_instrumented, true); //@ ensures junk(); { //@ open_module(); static char array[1024 * 1024] = { 1 }; unsigned int a = 1, i, j, k; for (i = 0; i < sizeof(array); i++) //@ invariant (a == 1); for (j = 0; j < sizeof(array); j++) //@ invariant (a == 1); for (k = 0; k < sizeof(array); k++) //@ invariant (a == 1); array[i] = array[j] + array[k]; if (a != 1) goto ERROR; return array[100]; //@ invariant false; ERROR: {reach_error();abort();} return 1; }