Please do not use optimizations bigger than -O2. gcc 2.8.1 and egcs 1.1 both produce incorrect code with -O3 and -O6. egcs 1.1.2 and above are ok with every optimization.