// S : tags c sym $TAGS // S : expect --result valid // S : cc -o test.bc $CC_OPT $file // S : verify --symbolic --solver $solver --sequential -o nofail:malloc $V_OPT test.bc // N : V : CC_OPT : V_OPT : TAGS : RESULT // V : big.1000 : -DNUM=1000 : : big : valid // V : small.100 : -DNUM=100 : : : valid extern void __VERIFIER_error() __attribute__ ((__noreturn__)); extern void __VERIFIER_assert(int); extern int __VERIFIER_nondet_int(void); int main(void) { int A[NUM]; int i; for (i = 0; i < NUM-1; i++) { A[i] = __VERIFIER_nondet_int(); } A[NUM-1] = 0; for (i = 0; A[i] != 0; i++) { } __VERIFIER_assert(i <= NUM); }