3 /* bug found by Eric Young (eay@mincom.oz.au) May 95 */
8 * This compiler bug it present on IRIX 5.3, 5.1 and 4.0.5 (these are the
9 * only versions of IRIX I have access to. defining FIXBUG removes the bug.
10 * (bug is still present in IRIX 6.3 according to Gage
11 * <agage@forgetmenot.Mines.EDU>
15 * Compare the output from
16 * cc sgiccbug.c; ./a.out
18 * cc -O sgiccbug.c; ./a.out
21 static unsigned long a
[4] =
22 { 0x01234567, 0x89ABCDEF, 0xFEDCBA98, 0x76543210 };
23 static unsigned long b
[4] =
24 { 0x89ABCDEF, 0xFEDCBA98, 0x76543210, 0x01234567 };
25 static unsigned long c
[4] =
26 { 0x77777778, 0x8ACF1357, 0x88888888, 0x7530ECA9 };
32 fprintf(stderr
, "input a= %08X %08X %08X %08X\n", a
[3], a
[2], a
[1], a
[0]);
33 fprintf(stderr
, "input b= %08X %08X %08X %08X\n", b
[3], b
[2], b
[1], b
[0]);
34 fprintf(stderr
, "output = %08X %08X %08X %08X\n", r
[3], r
[2], r
[1], r
[0]);
35 fprintf(stderr
, "correct= %08X %08X %08X %08X\n", c
[3], c
[2], c
[1], c
[0]);
39 unsigned long *r
, *a
, *b
;
41 register unsigned long t1
, t2
, *ap
, *bp
, *rp
;
51 for (i
= 0; i
< 4; i
++) {
58 *(rp
++) = t1
& 0xffffffff;