diff options
Diffstat (limited to 'bugs/sgiccbug.c')
-rw-r--r-- | bugs/sgiccbug.c | 74 |
1 files changed, 38 insertions, 36 deletions
diff --git a/bugs/sgiccbug.c b/bugs/sgiccbug.c index 9edda5e946..6b1b3d4ab0 100644 --- a/bugs/sgiccbug.c +++ b/bugs/sgiccbug.c @@ -4,13 +4,13 @@ #include <stdio.h> -/* This compiler bug it present on IRIX 5.3, 5.1 and 4.0.5 (these are - * the only versions of IRIX I have access to. - * defining FIXBUG removes the bug. - * (bug is still present in IRIX 6.3 according to - * Gage <agage@forgetmenot.Mines.EDU> +/* + * This compiler bug it present on IRIX 5.3, 5.1 and 4.0.5 (these are the + * only versions of IRIX I have access to. defining FIXBUG removes the bug. + * (bug is still present in IRIX 6.3 according to Gage + * <agage@forgetmenot.Mines.EDU> */ - + /*- * Compare the output from * cc sgiccbug.c; ./a.out @@ -18,41 +18,43 @@ * cc -O sgiccbug.c; ./a.out */ -static unsigned long a[4]={0x01234567,0x89ABCDEF,0xFEDCBA98,0x76543210}; -static unsigned long b[4]={0x89ABCDEF,0xFEDCBA98,0x76543210,0x01234567}; -static unsigned long c[4]={0x77777778,0x8ACF1357,0x88888888,0x7530ECA9}; +static unsigned long a[4] = + { 0x01234567, 0x89ABCDEF, 0xFEDCBA98, 0x76543210 }; +static unsigned long b[4] = + { 0x89ABCDEF, 0xFEDCBA98, 0x76543210, 0x01234567 }; +static unsigned long c[4] = + { 0x77777778, 0x8ACF1357, 0x88888888, 0x7530ECA9 }; main() - { - unsigned long r[4]; - sub(r,a,b); - fprintf(stderr,"input a= %08X %08X %08X %08X\n",a[3],a[2],a[1],a[0]); - fprintf(stderr,"input b= %08X %08X %08X %08X\n",b[3],b[2],b[1],b[0]); - fprintf(stderr,"output = %08X %08X %08X %08X\n",r[3],r[2],r[1],r[0]); - fprintf(stderr,"correct= %08X %08X %08X %08X\n",c[3],c[2],c[1],c[0]); - } +{ + unsigned long r[4]; + sub(r, a, b); + fprintf(stderr, "input a= %08X %08X %08X %08X\n", a[3], a[2], a[1], a[0]); + fprintf(stderr, "input b= %08X %08X %08X %08X\n", b[3], b[2], b[1], b[0]); + fprintf(stderr, "output = %08X %08X %08X %08X\n", r[3], r[2], r[1], r[0]); + fprintf(stderr, "correct= %08X %08X %08X %08X\n", c[3], c[2], c[1], c[0]); +} -int sub(r,a,b) -unsigned long *r,*a,*b; - { - register unsigned long t1,t2,*ap,*bp,*rp; - int i,carry; +int sub(r, a, b) +unsigned long *r, *a, *b; +{ + register unsigned long t1, t2, *ap, *bp, *rp; + int i, carry; #ifdef FIXBUG - unsigned long dummy; + unsigned long dummy; #endif - ap=a; - bp=b; - rp=r; - carry=0; - for (i=0; i<4; i++) - { - t1= *(ap++); - t2= *(bp++); - t1=(t1-t2); + ap = a; + bp = b; + rp = r; + carry = 0; + for (i = 0; i < 4; i++) { + t1 = *(ap++); + t2 = *(bp++); + t1 = (t1 - t2); #ifdef FIXBUG - dummy=t1; + dummy = t1; #endif - *(rp++)=t1&0xffffffff; - } - } + *(rp++) = t1 & 0xffffffff; + } +} |