repo.or.cz
/
OpenSSL.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
Merge from main trunk: lets see if this works ;-)
[OpenSSL.git]
/
bugs
/
ultrixcc.c
blob
7ba75b140f1f731f4e87618920cf040f70db643b
1
#include <stdio.h>
2
3
/* This is a cc optimiser bug for ultrix 4.3, mips CPU.
4
* What happens is that the compiler, due to the (a)&7,
5
* does
6
* i=a&7;
7
* i--;
8
* i*=4;
9
* Then uses i as the offset into a jump table.
10
* The problem is that a value of 0 generates an offset of
11
* 0xfffffffc.
12
*/
13
14
main
()
15
{
16
f
(
5
);
17
f
(
0
);
18
}
19
20
int
f
(
a
)
21
int
a
;
22
{
23
switch
(
a
&
7
)
24
{
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
}
45