Re: [NOVICE] Postgres storing time in strange manner - Mailing list pgsql-bugs

From Sean Chittenden
Subject Re: [NOVICE] Postgres storing time in strange manner
Date
Msg-id 20020918183144.GP99484@perrin.int.nxad.com
Whole thread Raw
In response to Re: [NOVICE] Postgres storing time in strange manner  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
> > 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

pgsql-bugs by date:

Previous
From: Sean Chittenden
Date:
Subject: SET autocommit begins transaction?
Next
From: pgsql-bugs@postgresql.org
Date:
Subject: Bug #772: Rewriting on multi-record updates is unreliable