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. -- Summary: long double incorrect result Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ferrandi at elet dot polimi dot it CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i386-redhat-linux GCC host triplet: i386-redhat-linux GCC target triplet: i386-redhat-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21737