You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
666 B
44 lines
666 B
#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 |
|
} |
|
}
|
|
|