Cleanup NAN code in float.h, too.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 8 Oct 2025 16:19:53 +0000 (12:19 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 8 Oct 2025 16:19:53 +0000 (12:19 -0400)
commit14ad0d7bf2b8d5f26061df7cbdf18cfffcdcb225
tree5244c005d5434cf090fb4f83fbeae915ed30c9d7
parent4685977cc51c91dda0f76b1ef71ba02823a57a1e
Cleanup NAN code in float.h, too.

In the same spirit as 3bf905692, assume that all compilers we still
support provide the NAN macro, and get rid of workarounds for that.

The C standard allows implementations to omit NAN if the underlying
float arithmetic lacks quiet (non-signaling) NaNs.  However, we've
required that feature for years: the workarounds only supported
lack of the macro, not lack of the functionality.  I put in a
compile-time #error if there's no macro, just for clarity.

Also fix up the copies of these functions in ecpglib, and leave
a breadcrumb for the next hacker who touches them.

History of the hacks being removed here can be found in commits
1bc2d544b4d17a2146cec8394b5.

Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/1952095.1759764279@sss.pgh.pa.us
src/include/utils/float.h
src/interfaces/ecpg/ecpglib/data.c