shithub: scc

Download patch

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);
+	}
+}
--