ref: 06ccd3a0b986f0eb634bf642fe69ba9434a39ed2
parent: fbc4a2c2bfb90654aafbdaf3c3e2a76b807ea19b
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Tue Oct 6 11:26:33 EDT 2015
Add test for Duff device
--- /dev/null
+++ b/cc1/tests/test036.c
@@ -1,0 +1,32 @@
+
+/*
+name: TEST036
+description: Duff's device
+output:
+
+*/
+
+/* Disgusting, no? But it compiles and runs just fine. I feel a combination of
+ pride and revulsion at this discovery. If no one's thought of it before,
+ I think I'll name it after myself.
+ It amazes me that after 10 years of writing C there are still
+ little corners that I haven't explored fully.
+ - Tom Duff */
+
+send(to, from, count)
+ register short *to, *from;
+ register count;
+{
+ register 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++;
+ }while(--n>0);
+ }
+}
--
⑨