Do not use __builtin_types_compatible_p in C++ mode (bug 21930)
commit47a67213a9f51c5f8816d240500b10db605d8b77
authorGabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
Fri, 11 Aug 2017 17:29:06 +0000 (11 14:29 -0300)
committerGabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
Fri, 18 Aug 2017 15:18:36 +0000 (18 12:18 -0300)
treea00a1a49fd40e25061b9c02246caf8f80e32f6bf
parentc647fb885cb678471f6b6a66f394b4ca5515a016
Do not use __builtin_types_compatible_p in C++ mode (bug 21930)

The logic to define isinf for float128 depends on the availability of
__builtin_types_compatible_p, which is only available in C mode,
however, the conditionals do not check for C or C++ mode.  This lead to
an error in libstdc++ configure, as reported by bug 21930.

This patch adds a conditional for C mode in the definition of isinf for
float128.  No definition is provided in C++ mode, since libstdc++
headers undefine isinf.

Tested for powerpc64le (glibc test suite and libstdc++-v3 configure).

[BZ #21930]
* math/math.h (isinf): Check if in C or C++ mode before using
__builtin_types_compatible_p, since this is a C mode feature.
ChangeLog
math/math.h