> > After looking through gcc, using -O and -ffast-math will create broken > > code, but -O2 -ffast-math _should_ be okay. > > At least in the gcc shipped with Red Hat 7.2, it doesn't seem to matter: > you get the wrong answer regardless of -O level. Here's the test case > I used: > > [tgl@rh1 tgl]$ cat bug.c > #include <stdio.h> > > double d18000 = 18000.0; > > main() { > int d = d18000 / 3600; > printf("18000.0 / 3600 = %d\n", d); > return 0; > } > [tgl@rh1 tgl]$ gcc bug.c > [tgl@rh1 tgl]$ ./a.out > 18000.0 / 3600 = 5 -- right > [tgl@rh1 tgl]$ gcc -O2 -ffast-math bug.c > [tgl@rh1 tgl]$ ./a.out > 18000.0 / 3600 = 4 -- wrong > -- I get 4 if -ffast-math, -O doesn't affect it > [tgl@rh1 tgl]$ gcc -v > Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs > gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
Heh, chalk this one up as another Linux-ism then 'cause it's not present in FreeBSD -stable or -current. This actually makes me feel better about setting an option in the -devel port for turning on compilation with -O3. -sc stable$ gcc -v Using builtin specs. gcc version 2.95.4 20020320 [FreeBSD] current$ gcc -v Using built-in specs. Configured with: FreeBSD/i386 system compiler Thread model: posix gcc version 3.2.1 [FreeBSD] 20020901 (prerelease) -- Sean Chittenden ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])