/* alphaev68-dec-osf5.1b long double optimization bug with gcc-4.0.0 regression from gcc-3.4.3 % config.guess alphaev68-dec-osf5.1b % gcc -v Using built-in specs. Target: alphaev68-dec-osf5.1b Configured with: /usr/local/gcc-4.0.0/src/gcc-4.0.0/configure --enable-languages=c --prefix=/usr/local/gcc-4.0.0/alpha-OSF1-V5 Thread model: posix gcc version 4.0.0 % % gcc -mieee-with-inexact -o foo foo.c % foo 1 % % gcc -mieee-with-inexact -O1 -o foo foo.c % foo 0 % only happens with "long double", not with "double" */
#include <stdio.h> #define DBL_NAN ((long double) 0.0/0.0) static int Isnan_ld (long double d) { int ans; long double __x = (d); if ((d) != __x) ans = 1; else ans = 0; return ans; } int main (int argc, char *argv[]) { long double d; d = (long double) DBL_NAN; printf("%d\n", Isnan_ld(d)); return 0; } -- Summary: alphaev68-dec-osf5.1b long double optimization bug with gcc-4.0.0 Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: regression AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kminola at eng dot umd dot edu CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: alphaev68-dec-osf5.1b GCC host triplet: alphaev68-dec-osf5.1b GCC target triplet: alphaev68-dec-osf5.1b http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21390