diff options
author | Ralf S. Engelschall <rse@openssl.org> | 1998-12-21 11:00:56 +0000 |
---|---|---|
committer | Ralf S. Engelschall <rse@openssl.org> | 1998-12-21 11:00:56 +0000 |
commit | 31b8d8684441e6cd5138832bb1b2ddb10acd6ba6 (patch) | |
tree | bd2486e342980b19b92cff888ae6206d906a089d /bugs | |
parent | 7dfb0b774e6592dcbfe47015168a0ac8b44e2a17 (diff) | |
parent | dfeab0689f69c0b4bd3480ffd37a9cacc2f17d9c (diff) |
This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
Diffstat (limited to 'bugs')
-rw-r--r-- | bugs/sgiccbug.c | 2 | ||||
-rw-r--r-- | bugs/ultrixcc.c | 45 |
2 files changed, 47 insertions, 0 deletions
diff --git a/bugs/sgiccbug.c b/bugs/sgiccbug.c index 48bd0605df..178239d492 100644 --- a/bugs/sgiccbug.c +++ b/bugs/sgiccbug.c @@ -7,6 +7,8 @@ /* This compiler bug it present on IRIX 5.3, 5.1 and 4.0.5 (these are * the only versions of IRIX I have access to. * defining FIXBUG removes the bug. + * (bug is still present in IRIX 6.3 according to + * Gage <agage@forgetmenot.Mines.EDU> */ /* Compare the output from diff --git a/bugs/ultrixcc.c b/bugs/ultrixcc.c new file mode 100644 index 0000000000..7ba75b140f --- /dev/null +++ b/bugs/ultrixcc.c @@ -0,0 +1,45 @@ +#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 + } + } + |