/* Commandline execution: * civl verify duffs.cvl * */ #include $input int a[8]; // This is Stroustrup's version of Duff's device. void send(int *to, int *from, int count) { int n = (count + 7) / 8; switch(count % 8) { case 0: do { *to++ = *from++; case 7: *to++ = *from++; case 6: *to++ = *from++; case 5: *to++ = *from++; case 4: *to++ = *from++; case 3: *to++ = *from++; case 2: *to++ = *from++; case 1: *to++ = *from++; --n; } while(n > 0); } } void main() { int b[8]; send(b, a, 8); for (int i = 0; i < 8; i++) { $assert(a[i] == b[i]); } }