Peter Eisentraut <peter_e@gmx.net> writes:
> Btw., when you build a simple test program in the default mode, pow()
> indeed returns Inf on overflow. There appear to be some code generation
> or optimization problems when it builds the postgres code, because the
> problem goes away with either -O0 or by inserting an elog or something
> like that after the pow() call.
Hmm. Sounds to me like clang is trying to insert an inlined version of
pow() that gets this case wrong. Any of -fmath-errno, -O0, or possibly
other things discourage it from doing that, and then the non-inline code
gets it right. Bug for sure.
regards, tom lane