scc

Simple C99 Compiler
Log | Files | Refs | README | LICENSE

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:
cc1/tests/test036.c | 32++++++++++++++++++++++++++++++++
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); + } +}