carry@deakin.OZ.AU (Carry Varley) (09/06/90)
/* A Serious Bug in Aztec C 5.0b Jun 18 1990 (C) 1990 by Manx Software Systems, Inc Compile options -s0o in this test case, 16 or 32 bit ints. In the actual code this was discovered in all optimization was on, and variable i was register, but kept on the stack due to other register usage (ie bug occurs with & without optimization). In the test case, result is good with optimize, bad without. Compile with -at option, and observe the difference. */ struct table { short Index; short Array[2]; } table; main() { register short i; short *ip; register struct table *sp = &table; table.Index = 0; table.Array[0] = 1; table.Array[1] = 2; i = *(ip = &sp->Array[sp->Index]); if(i == *ip) printf("Good\n"); else printf("BAD Compiler\n"); } /* C-Born Software Systems 14 Lunan Avenue Drumcondra, 3215 Australia. +61 (052) 786530 */