New method for preventing compile-time calculation of degree constants.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 6b1a213bbd6599228b2b67f7552ff7cc378797bf
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2016-04-25T19:21:04Z
Releases: 9.6.0
New method for preventing compile-time calculation of degree constants.

Commit 65abaab547a5758b tried to prevent the scaling constants used in
the degree-based trig functions from being precomputed at compile time,
because some compilers do that with functions that don't yield results
identical-to-the-last-bit to what you get at runtime.  A report from
Peter Eisentraut suggests that some recent compilers are smart enough
to see through that trick, though.  Instead, let's put the inputs to
these calculations into non-const global variables, which should be a
more reliable way of convincing the compiler that it can't assume that
they are compile-time constants.  (If we really get desperate, we could
mark these variables "volatile", but I do not believe we should have to.)

Files

PathChange+/−
src/backend/utils/adt/float.c modified +27 −22