#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 } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 10713 | Robert Cowham |
Populate //guest/robert_cowham/openssl/1.0.1j/... from //guest/robert_cowham/openssl/main/.... |
||
//guest/robert_cowham/openssl/main/bugs/ultrixcc.c | |||||
#1 | 10711 | Robert Cowham | OpenSSL 1.0.1i |