If double, long double and _Float64 all have the same set of values, TS 18661-3 requires the usual arithmetic conversions on long double and _Float64 to produce _Float64. For this to be the case when building with a compiler without a distinct _Float64 type, _Float64 must be a typedef for long double, not for double. (_Float32x, however, must be double in such a case, not long double, because the usual arithmetic conversions on _Float32x and double must produce double.)
This patch adjusts the fallback definition of _Float64 and associated macros accordingly in that case, to fix the build of test-tgmath3 with GCC 6 for such a configuration. Tested in conjunction with _Float64 changes with build-many-glibcs.py for arm-linux-gnueabi, to make sure the issue with test-tgmath3 is fixed. Also tested for x86_64.
- bits/floatn-common.h: Include
f778723496 Use long double not double for _Float64 with old GCC if values the same.
ChangeLog | 18 ++++++++++++++++++
bits/floatn-common.h | 51 ++++++++++++++++++++++++++++++++++++++++++---------
2 files changed, 60 insertions(+), 9 deletions(-)