Starting from file 20040208-2.c provided in the gcc testsuite I've obtained an equivalent version performing an abort. By changing the following two lines: Internal = x_0 * 0x0.8000000000000000000000000000000000000000p+2L; x = Internal; in x = x_0 * 0x0.8000000000000000000000000000000000000000p+2L; everything work well. I've obtained the same bug on gcc 2.96, 3.3.4, 3.4.3 and 4.0.0.
Created attachment 8961 [details] preprocessed file
4.0.0 and 4.1.0 works for me on i686-pc-linux-gnu. 3.4.0 fails though.
Created attachment 8962 [details] i386 assembler of 20040208-2.c.t12.eh.c
As I mentioned 4.0.0 works for me so closing as fixed.