GCC 9 warns about floating point constants overflowing for i386.
Details
- build i386 and amd64 with gcc9
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped - Build Status
Buildable 33177 Build 30526: arc lint + arc unit
Event Timeline
There is a larger issue here that GCC has special features in place to deal with the unusual floating point setup FreeBSD/i386 uses. That is what triggers these warnings. clang treats FreeBSD/i386 like Linux i386 and assumes we use the same floating point setup as Linux. Probably we should really change FreeBSD to be more standard to match what clang assumes and let GCC drop patches that are only used on FreeBSD (AFAICT). It would also remove the need for the hack to not install GCC's float.h for amd64 and i386.
Is this specifically for LDBL_MAX?
When I looked at something like this last (around r323003), gcc wasn't just producing a warning, it was also producing wrong code (an infinite value instead of a finite one).
Going to a more sane long double for i386 would be great, but might have some ABI/upgrade consequences.