commit 06ccd3a0b986f0eb634bf642fe69ba9434a39ed2
parent fbc4a2c2bfb90654aafbdaf3c3e2a76b807ea19b
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Tue, 6 Oct 2015 15:26:33 +0200
Add test for Duff device
Diffstat:
1 file changed, 32 insertions(+), 0 deletions(-)
diff --git a/cc1/tests/test036.c b/cc1/tests/test036.c
@@ -0,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);
+ }
+}