repo.or.cz
/
minix.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
etc/services - sync with NetBSD-8
[minix.git]
/
crypto
/
external
/
bsd
/
openssl
/
dist
/
bugs
/
ultrixcc.c
blob
6e24549d5eb82206957235a5e0742a74d82f6d6f
1
#include <stdio.h>
2
3
/*-
4
* This is a cc optimiser bug for ultrix 4.3, mips CPU.
5
* What happens is that the compiler, due to the (a)&7,
6
* does
7
* i=a&7;
8
* i--;
9
* i*=4;
10
* Then uses i as the offset into a jump table.
11
* The problem is that a value of 0 generates an offset of
12
* 0xfffffffc.
13
*/
14
15
main
()
16
{
17
f
(
5
);
18
f
(
0
);
19
}
20
21
int
f
(
a
)
22
int
a
;
23
{
24
switch
(
a
&
7
) {
25
case
7
:
26
printf
(
"7
\n
"
);
27
case
6
:
28
printf
(
"6
\n
"
);
29
case
5
:
30
printf
(
"5
\n
"
);
31
case
4
:
32
printf
(
"4
\n
"
);
33
case
3
:
34
printf
(
"3
\n
"
);
35
case
2
:
36
printf
(
"2
\n
"
);
37
case
1
:
38
printf
(
"1
\n
"
);
39
#ifdef FIX_BUG
40
case
0
:
41
;
42
#endif
43
}
44
}