Revision 2d183e4c44b1d18fe515739ec72c76d471a4b669 authored by Dr. Stephen Henson on 14 October 2012, 12:02:53 UTC, committed by Dr. Stephen Henson on 14 October 2012, 12:02:53 UTC
1 parent 7049d13
ultrixcc.c
#include <stdio.h>
/* This is a cc optimiser bug for ultrix 4.3, mips CPU.
* What happens is that the compiler, due to the (a)&7,
* does
* i=a&7;
* i--;
* i*=4;
* Then uses i as the offset into a jump table.
* The problem is that a value of 0 generates an offset of
* 0xfffffffc.
*/
main()
{
f(5);
f(0);
}
int f(a)
int a;
{
switch(a&7)
{
case 7:
printf("7\n");
case 6:
printf("6\n");
case 5:
printf("5\n");
case 4:
printf("4\n");
case 3:
printf("3\n");
case 2:
printf("2\n");
case 1:
printf("1\n");
#ifdef FIX_BUG
case 0:
;
#endif
}
}

Computing file changes ...