mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-10 18:20:51 +08:00
Allow _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN to be overridden
PR libstdc++/69413 * config/os/gnu-linux/os_defines.h: Define _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC. * include/c_global/cmath (isinf, isnan): Check it. * doc/xml/manual/internals.xml: Document it. * doc/html/*: Regenerate. From-SVN: r232726
This commit is contained in:
parent
d8126ae1cf
commit
350fe2829e
@ -1,3 +1,12 @@
|
||||
2016-01-22 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
PR libstdc++/69413
|
||||
* config/os/gnu-linux/os_defines.h: Define
|
||||
_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
|
||||
* include/c_global/cmath (isinf, isnan): Check it.
|
||||
* doc/xml/manual/internals.xml: Document it.
|
||||
* doc/html/*: Regenerate.
|
||||
|
||||
2016-01-21 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
PR libstdc++/69406
|
||||
|
@ -45,4 +45,8 @@
|
||||
# undef _GLIBCXX_HAVE_GETS
|
||||
#endif
|
||||
|
||||
// Glibc 2.23 removed the obsolete isinf and isnan declarations. Check the
|
||||
// version dynamically in case it has changed since libstdc++ was configured.
|
||||
#define _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23)
|
||||
|
||||
#endif
|
||||
|
@ -88,6 +88,13 @@ the standard.
|
||||
to an expression that yields 0 if and only if the system headers
|
||||
are exposing proper support for the related set of functions. If defined,
|
||||
it must be 0 while bootstrapping the compiler/rebuilding the library.
|
||||
</p><p><code class="code">_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC</code> may be defined
|
||||
to an expression that yields 0 if and only if the system headers
|
||||
are exposing non-standard <code class="code">isinf(double)</code> and
|
||||
<code class="code">isnan(double)</code> functions in the global namespace. Those functions
|
||||
should be detected automatically by the <code class="code">configure</code> script when
|
||||
libstdc++ is built but if their presence depends on compilation flags or
|
||||
other macros the static configuration can be overridden.
|
||||
</p><p>Finally, you should bracket the entire file in an include-guard, like
|
||||
this:
|
||||
</p><pre class="programlisting">
|
||||
|
@ -132,6 +132,14 @@ the standard.
|
||||
to an expression that yields 0 if and only if the system headers
|
||||
are exposing proper support for the related set of functions. If defined,
|
||||
it must be 0 while bootstrapping the compiler/rebuilding the library.
|
||||
</para>
|
||||
<para><code>_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC</code> may be defined
|
||||
to an expression that yields 0 if and only if the system headers
|
||||
are exposing non-standard <code>isinf(double)</code> and
|
||||
<code>isnan(double)</code> functions in the global namespace. Those functions
|
||||
should be detected automatically by the <code>configure</code> script when
|
||||
libstdc++ is built but if their presence depends on compilation flags or
|
||||
other macros the static configuration can be overridden.
|
||||
</para>
|
||||
<para>Finally, you should bracket the entire file in an include-guard, like
|
||||
this:
|
||||
|
@ -610,7 +610,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
isinf(float __x)
|
||||
{ return __builtin_isinf(__x); }
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN
|
||||
#if _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN \
|
||||
&& !_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC
|
||||
using ::isinf;
|
||||
#else
|
||||
constexpr bool
|
||||
@ -634,7 +635,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
isnan(float __x)
|
||||
{ return __builtin_isnan(__x); }
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN
|
||||
#if _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN \
|
||||
&& !_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC
|
||||
using ::isnan;
|
||||
#else
|
||||
constexpr bool
|
||||
|
Loading…
x
Reference in New Issue
Block a user