1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gdb,v 1.15 2020/12/05 21:27:31 christos Exp  */
3 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
4 
5 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
6 /* A GNU-like <math.h>.
7 
8    Copyright (C) 2002-2003, 2007-2020 Free Software Foundation, Inc.
9 
10    This program is free software: you can redistribute it and/or modify
11    it under the terms of the GNU General Public License as published by
12    the Free Software Foundation; either version 3 of the License, or
13    (at your option) any later version.
14 
15    This program is distributed in the hope that it will be useful,
16    but WITHOUT ANY WARRANTY; without even the implied warranty of
17    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18    GNU General Public License for more details.
19 
20    You should have received a copy of the GNU General Public License
21    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
22 
23 #ifndef _GL_MATH_H
24 
25 #if __GNUC__ >= 3
26 #pragma GCC system_header
27 #endif
28 
29 
30 /* The include_next requires a split double-inclusion guard.  */
31 #include_next <math.h>
32 
33 #ifndef _GL_MATH_H
34 #define _GL_MATH_H
35 
36 /* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>.  */
37 #if defined __VMS && ! defined NAN
38 # include <fp.h>
39 #endif
40 
41 #ifndef _GL_INLINE_HEADER_BEGIN
42  #error "Please include config.h first."
43 #endif
44 _GL_INLINE_HEADER_BEGIN
45 #ifndef _GL_MATH_INLINE
46 # define _GL_MATH_INLINE _GL_INLINE
47 #endif
48 
49 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
50 /* C++ compatible function declaration macros.
51    Copyright (C) 2010-2020 Free Software Foundation, Inc.
52 
53    This program is free software: you can redistribute it and/or modify it
54    under the terms of the GNU General Public License as published
55    by the Free Software Foundation; either version 3 of the License, or
56    (at your option) any later version.
57 
58    This program is distributed in the hope that it will be useful,
59    but WITHOUT ANY WARRANTY; without even the implied warranty of
60    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
61    General Public License for more details.
62 
63    You should have received a copy of the GNU General Public License
64    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
65 
66 #ifndef _GL_CXXDEFS_H
67 #define _GL_CXXDEFS_H
68 
69 /* Begin/end the GNULIB_NAMESPACE namespace.  */
70 #if defined __cplusplus && defined GNULIB_NAMESPACE
71 # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE {
72 # define _GL_END_NAMESPACE }
73 #else
74 # define _GL_BEGIN_NAMESPACE
75 # define _GL_END_NAMESPACE
76 #endif
77 
78 /* The three most frequent use cases of these macros are:
79 
80    * For providing a substitute for a function that is missing on some
81      platforms, but is declared and works fine on the platforms on which
82      it exists:
83 
84        #if @GNULIB_FOO@
85        # if !@HAVE_FOO@
86        _GL_FUNCDECL_SYS (foo, ...);
87        # endif
88        _GL_CXXALIAS_SYS (foo, ...);
89        _GL_CXXALIASWARN (foo);
90        #elif defined GNULIB_POSIXCHECK
91        ...
92        #endif
93 
94    * For providing a replacement for a function that exists on all platforms,
95      but is broken/insufficient and needs to be replaced on some platforms:
96 
97        #if @GNULIB_FOO@
98        # if @REPLACE_FOO@
99        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
100        #   undef foo
101        #   define foo rpl_foo
102        #  endif
103        _GL_FUNCDECL_RPL (foo, ...);
104        _GL_CXXALIAS_RPL (foo, ...);
105        # else
106        _GL_CXXALIAS_SYS (foo, ...);
107        # endif
108        _GL_CXXALIASWARN (foo);
109        #elif defined GNULIB_POSIXCHECK
110        ...
111        #endif
112 
113    * For providing a replacement for a function that exists on some platforms
114      but is broken/insufficient and needs to be replaced on some of them and
115      is additionally either missing or undeclared on some other platforms:
116 
117        #if @GNULIB_FOO@
118        # if @REPLACE_FOO@
119        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
120        #   undef foo
121        #   define foo rpl_foo
122        #  endif
123        _GL_FUNCDECL_RPL (foo, ...);
124        _GL_CXXALIAS_RPL (foo, ...);
125        # else
126        #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
127        _GL_FUNCDECL_SYS (foo, ...);
128        #  endif
129        _GL_CXXALIAS_SYS (foo, ...);
130        # endif
131        _GL_CXXALIASWARN (foo);
132        #elif defined GNULIB_POSIXCHECK
133        ...
134        #endif
135 */
136 
137 /* _GL_EXTERN_C declaration;
138    performs the declaration with C linkage.  */
139 #if defined __cplusplus
140 # define _GL_EXTERN_C extern "C"
141 #else
142 # define _GL_EXTERN_C extern
143 #endif
144 
145 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
146    declares a replacement function, named rpl_func, with the given prototype,
147    consisting of return type, parameters, and attributes.
148    Example:
149      _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
150                                   _GL_ARG_NONNULL ((1)));
151  */
152 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
153   _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
154 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
155   _GL_EXTERN_C rettype rpl_func parameters_and_attributes
156 
157 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
158    declares the system function, named func, with the given prototype,
159    consisting of return type, parameters, and attributes.
160    Example:
161      _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
162                                   _GL_ARG_NONNULL ((1)));
163  */
164 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
165   _GL_EXTERN_C rettype func parameters_and_attributes
166 
167 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
168    declares a C++ alias called GNULIB_NAMESPACE::func
169    that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
170    Example:
171      _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
172 
173    Wrapping rpl_func in an object with an inline conversion operator
174    avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is
175    actually used in the program.  */
176 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
177   _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
178 #if defined __cplusplus && defined GNULIB_NAMESPACE
179 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
180     namespace GNULIB_NAMESPACE                                \
181     {                                                         \
182       static const struct _gl_ ## func ## _wrapper            \
183       {                                                       \
184         typedef rettype (*type) parameters;                   \
185                                                               \
186         inline operator type () const                         \
187         {                                                     \
188           return ::rpl_func;                                  \
189         }                                                     \
190       } func = {};                                            \
191     }                                                         \
192     _GL_EXTERN_C int _gl_cxxalias_dummy
193 #else
194 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
195     _GL_EXTERN_C int _gl_cxxalias_dummy
196 #endif
197 
198 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
199    is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
200    except that the C function rpl_func may have a slightly different
201    declaration.  A cast is used to silence the "invalid conversion" error
202    that would otherwise occur.  */
203 #if defined __cplusplus && defined GNULIB_NAMESPACE
204 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
205     namespace GNULIB_NAMESPACE                                     \
206     {                                                              \
207       static const struct _gl_ ## func ## _wrapper                 \
208       {                                                            \
209         typedef rettype (*type) parameters;                        \
210                                                                    \
211         inline operator type () const                              \
212         {                                                          \
213           return reinterpret_cast<type>(::rpl_func);               \
214         }                                                          \
215       } func = {};                                                 \
216     }                                                              \
217     _GL_EXTERN_C int _gl_cxxalias_dummy
218 #else
219 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
220     _GL_EXTERN_C int _gl_cxxalias_dummy
221 #endif
222 
223 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
224    declares a C++ alias called GNULIB_NAMESPACE::func
225    that redirects to the system provided function func, if GNULIB_NAMESPACE
226    is defined.
227    Example:
228      _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
229 
230    Wrapping func in an object with an inline conversion operator
231    avoids a reference to func unless GNULIB_NAMESPACE::func is
232    actually used in the program.  */
233 #if defined __cplusplus && defined GNULIB_NAMESPACE
234 # define _GL_CXXALIAS_SYS(func,rettype,parameters)            \
235     namespace GNULIB_NAMESPACE                                \
236     {                                                         \
237       static const struct _gl_ ## func ## _wrapper            \
238       {                                                       \
239         typedef rettype (*type) parameters;                   \
240                                                               \
241         inline operator type () const                         \
242         {                                                     \
243           return ::func;                                      \
244         }                                                     \
245       } func = {};                                            \
246     }                                                         \
247     _GL_EXTERN_C int _gl_cxxalias_dummy
248 #else
249 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
250     _GL_EXTERN_C int _gl_cxxalias_dummy
251 #endif
252 
253 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
254    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
255    except that the C function func may have a slightly different declaration.
256    A cast is used to silence the "invalid conversion" error that would
257    otherwise occur.  */
258 #if defined __cplusplus && defined GNULIB_NAMESPACE
259 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
260     namespace GNULIB_NAMESPACE                          \
261     {                                                   \
262       static const struct _gl_ ## func ## _wrapper      \
263       {                                                 \
264         typedef rettype (*type) parameters;             \
265                                                         \
266         inline operator type () const                   \
267         {                                               \
268           return reinterpret_cast<type>(::func);        \
269         }                                               \
270       } func = {};                                      \
271     }                                                   \
272     _GL_EXTERN_C int _gl_cxxalias_dummy
273 #else
274 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
275     _GL_EXTERN_C int _gl_cxxalias_dummy
276 #endif
277 
278 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
279    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
280    except that the C function is picked among a set of overloaded functions,
281    namely the one with rettype2 and parameters2.  Two consecutive casts
282    are used to silence the "cannot find a match" and "invalid conversion"
283    errors that would otherwise occur.  */
284 #if defined __cplusplus && defined GNULIB_NAMESPACE
285   /* The outer cast must be a reinterpret_cast.
286      The inner cast: When the function is defined as a set of overloaded
287      functions, it works as a static_cast<>, choosing the designated variant.
288      When the function is defined as a single variant, it works as a
289      reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
290 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
291     namespace GNULIB_NAMESPACE                                                \
292     {                                                                         \
293       static const struct _gl_ ## func ## _wrapper                            \
294       {                                                                       \
295         typedef rettype (*type) parameters;                                   \
296                                                                               \
297         inline operator type () const                                         \
298         {                                                                     \
299           return reinterpret_cast<type>((rettype2 (*) parameters2)(::func));  \
300         }                                                                     \
301       } func = {};                                                            \
302     }                                                                         \
303     _GL_EXTERN_C int _gl_cxxalias_dummy
304 #else
305 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
306     _GL_EXTERN_C int _gl_cxxalias_dummy
307 #endif
308 
309 /* _GL_CXXALIASWARN (func);
310    causes a warning to be emitted when ::func is used but not when
311    GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
312    variants.  */
313 #if defined __cplusplus && defined GNULIB_NAMESPACE
314 # define _GL_CXXALIASWARN(func) \
315    _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
316 # define _GL_CXXALIASWARN_1(func,namespace) \
317    _GL_CXXALIASWARN_2 (func, namespace)
318 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
319    we enable the warning only when not optimizing.  */
320 # if !__OPTIMIZE__
321 #  define _GL_CXXALIASWARN_2(func,namespace) \
322     _GL_WARN_ON_USE (func, \
323                      "The symbol ::" #func " refers to the system function. " \
324                      "Use " #namespace "::" #func " instead.")
325 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
326 #  define _GL_CXXALIASWARN_2(func,namespace) \
327      extern __typeof__ (func) func
328 # else
329 #  define _GL_CXXALIASWARN_2(func,namespace) \
330      _GL_EXTERN_C int _gl_cxxalias_dummy
331 # endif
332 #else
333 # define _GL_CXXALIASWARN(func) \
334     _GL_EXTERN_C int _gl_cxxalias_dummy
335 #endif
336 
337 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
338    causes a warning to be emitted when the given overloaded variant of ::func
339    is used but not when GNULIB_NAMESPACE::func is used.  */
340 #if defined __cplusplus && defined GNULIB_NAMESPACE
341 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
342    _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
343                         GNULIB_NAMESPACE)
344 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
345    _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
346 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
347    we enable the warning only when not optimizing.  */
348 # if !__OPTIMIZE__
349 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
350     _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
351                          "The symbol ::" #func " refers to the system function. " \
352                          "Use " #namespace "::" #func " instead.")
353 # else
354 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
355      _GL_EXTERN_C int _gl_cxxalias_dummy
356 # endif
357 #else
358 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
359     _GL_EXTERN_C int _gl_cxxalias_dummy
360 #endif
361 
362 #endif /* _GL_CXXDEFS_H */
363 
364 /* The definition of _GL_ARG_NONNULL is copied here.  */
365 /* A C macro for declaring that specific arguments must not be NULL.
366    Copyright (C) 2009-2020 Free Software Foundation, Inc.
367 
368    This program is free software: you can redistribute it and/or modify it
369    under the terms of the GNU General Public License as published
370    by the Free Software Foundation; either version 3 of the License, or
371    (at your option) any later version.
372 
373    This program is distributed in the hope that it will be useful,
374    but WITHOUT ANY WARRANTY; without even the implied warranty of
375    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
376    General Public License for more details.
377 
378    You should have received a copy of the GNU General Public License
379    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
380 
381 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
382    that the values passed as arguments n, ..., m must be non-NULL pointers.
383    n = 1 stands for the first argument, n = 2 for the second argument etc.  */
384 #ifndef _GL_ARG_NONNULL
385 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
386 #  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
387 # else
388 #  define _GL_ARG_NONNULL(params)
389 # endif
390 #endif
391 
392 /* The definition of _GL_WARN_ON_USE is copied here.  */
393 /* A C macro for emitting warnings if a function is used.
394    Copyright (C) 2010-2020 Free Software Foundation, Inc.
395 
396    This program is free software: you can redistribute it and/or modify it
397    under the terms of the GNU General Public License as published
398    by the Free Software Foundation; either version 3 of the License, or
399    (at your option) any later version.
400 
401    This program is distributed in the hope that it will be useful,
402    but WITHOUT ANY WARRANTY; without even the implied warranty of
403    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
404    General Public License for more details.
405 
406    You should have received a copy of the GNU General Public License
407    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
408 
409 /* _GL_WARN_ON_USE (function, "literal string") issues a declaration
410    for FUNCTION which will then trigger a compiler warning containing
411    the text of "literal string" anywhere that function is called, if
412    supported by the compiler.  If the compiler does not support this
413    feature, the macro expands to an unused extern declaration.
414 
415    _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the
416    attribute used in _GL_WARN_ON_USE.  If the compiler does not support
417    this feature, it expands to empty.
418 
419    These macros are useful for marking a function as a potential
420    portability trap, with the intent that "literal string" include
421    instructions on the replacement function that should be used
422    instead.
423    _GL_WARN_ON_USE is for functions with 'extern' linkage.
424    _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline'
425    linkage.
426 
427    However, one of the reasons that a function is a portability trap is
428    if it has the wrong signature.  Declaring FUNCTION with a different
429    signature in C is a compilation error, so this macro must use the
430    same type as any existing declaration so that programs that avoid
431    the problematic FUNCTION do not fail to compile merely because they
432    included a header that poisoned the function.  But this implies that
433    _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already
434    have a declaration.  Use of this macro implies that there must not
435    be any other macro hiding the declaration of FUNCTION; but
436    undefining FUNCTION first is part of the poisoning process anyway
437    (although for symbols that are provided only via a macro, the result
438    is a compilation error rather than a warning containing
439    "literal string").  Also note that in C++, it is only safe to use if
440    FUNCTION has no overloads.
441 
442    For an example, it is possible to poison 'getline' by:
443    - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
444      [getline]) in configure.ac, which potentially defines
445      HAVE_RAW_DECL_GETLINE
446    - adding this code to a header that wraps the system <stdio.h>:
447      #undef getline
448      #if HAVE_RAW_DECL_GETLINE
449      _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
450        "not universally present; use the gnulib module getline");
451      #endif
452 
453    It is not possible to directly poison global variables.  But it is
454    possible to write a wrapper accessor function, and poison that
455    (less common usage, like &environ, will cause a compilation error
456    rather than issue the nice warning, but the end result of informing
457    the developer about their portability problem is still achieved):
458      #if HAVE_RAW_DECL_ENVIRON
459      static char ***
460      rpl_environ (void) { return &environ; }
461      _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
462      # undef environ
463      # define environ (*rpl_environ ())
464      #endif
465    or better (avoiding contradictory use of 'static' and 'extern'):
466      #if HAVE_RAW_DECL_ENVIRON
467      static char ***
468      _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared")
469      rpl_environ (void) { return &environ; }
470      # undef environ
471      # define environ (*rpl_environ ())
472      #endif
473    */
474 #ifndef _GL_WARN_ON_USE
475 
476 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
477 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
478 #  define _GL_WARN_ON_USE(function, message) \
479 extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
480 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
481   __attribute__ ((__warning__ (message)))
482 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
483 /* Verify the existence of the function.  */
484 #  define _GL_WARN_ON_USE(function, message) \
485 extern __typeof__ (function) function
486 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
487 # else /* Unsupported.  */
488 #  define _GL_WARN_ON_USE(function, message) \
489 _GL_WARN_EXTERN_C int _gl_warn_on_use
490 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
491 # endif
492 #endif
493 
494 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
495    is like _GL_WARN_ON_USE (function, "string"), except that in C++ mode the
496    function is declared with the given prototype, consisting of return type,
497    parameters, and attributes.
498    This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
499    not work in this case.  */
500 #ifndef _GL_WARN_ON_USE_CXX
501 # if !defined __cplusplus
502 #  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
503      _GL_WARN_ON_USE (function, msg)
504 # else
505 #  if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
506 #   define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
507 extern rettype function parameters_and_attributes \
508      __attribute__ ((__warning__ (msg)))
509 #  elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
510 /* Verify the existence of the function.  */
511 #   define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
512 extern rettype function parameters_and_attributes
513 #  else /* Unsupported.  */
514 #   define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
515 _GL_WARN_EXTERN_C int _gl_warn_on_use
516 #  endif
517 # endif
518 #endif
519 
520 /* _GL_WARN_EXTERN_C declaration;
521    performs the declaration with C linkage.  */
522 #ifndef _GL_WARN_EXTERN_C
523 # if defined __cplusplus
524 #  define _GL_WARN_EXTERN_C extern "C"
525 # else
526 #  define _GL_WARN_EXTERN_C extern
527 # endif
528 #endif
529 
530 #ifdef __cplusplus
531 /* Helper macros to define type-generic function FUNC as overloaded functions,
532    rather than as macros like in C.  POSIX declares these with an argument of
533    real-floating (that is, one of float, double, or long double).  */
534 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \
535 static inline int                                                   \
536 _gl_cxx_ ## func ## f (float f)                                     \
537 {                                                                   \
538   return func (f);                                                  \
539 }                                                                   \
540 static inline int                                                   \
541 _gl_cxx_ ## func ## d (double d)                                    \
542 {                                                                   \
543   return func (d);                                                  \
544 }                                                                   \
545 static inline int                                                   \
546 _gl_cxx_ ## func ## l (long double l)                               \
547 {                                                                   \
548   return func (l);                                                  \
549 }
550 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func,rpl_func,rettype) \
551 _GL_BEGIN_NAMESPACE                                                 \
552 inline rettype                                                      \
553 rpl_func (float f)                                                  \
554 {                                                                   \
555   return _gl_cxx_ ## func ## f (f);                                 \
556 }                                                                   \
557 inline rettype                                                      \
558 rpl_func (double d)                                                 \
559 {                                                                   \
560   return _gl_cxx_ ## func ## d (d);                                 \
561 }                                                                   \
562 inline rettype                                                      \
563 rpl_func (long double l)                                            \
564 {                                                                   \
565   return _gl_cxx_ ## func ## l (l);                                 \
566 }                                                                   \
567 _GL_END_NAMESPACE
568 #endif
569 
570 /* Helper macros to define a portability warning for the
571    classification macro FUNC called with VALUE.  POSIX declares the
572    classification macros with an argument of real-floating (that is,
573    one of float, double, or long double).  */
574 #define _GL_WARN_REAL_FLOATING_DECL(func) \
575 _GL_MATH_INLINE int                                                       \
576 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - "                      \
577                            "use gnulib module " #func " for portability") \
578 rpl_ ## func ## f (float f)                                               \
579 {                                                                         \
580   return func (f);                                                        \
581 }                                                                         \
582 _GL_MATH_INLINE int                                                       \
583 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - "                      \
584                            "use gnulib module " #func " for portability") \
585 rpl_ ## func ## d (double d)                                              \
586 {                                                                         \
587   return func (d);                                                        \
588 }                                                                         \
589 _GL_MATH_INLINE int                                                       \
590 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - "                      \
591                            "use gnulib module " #func " for portability") \
592 rpl_ ## func ## l (long double l)                                         \
593 {                                                                         \
594   return func (l);                                                        \
595 }
596 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
597   (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value)     \
598    : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value)  \
599    : rpl_ ## func ## l (value))
600 
601 
602 #if 0
603 /* Pull in a function that fixes the 'int' to 'long double' conversion
604    of glibc 2.7.  */
605 _GL_EXTERN_C void _Qp_itoq (long double *, int);
606 static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
607 #endif
608 
609 
610 /* For clang: Use __has_builtin to determine whether a builtin is available.  */
611 #ifndef __has_builtin
612 # define __has_builtin(name) 0
613 #endif
614 
615 
616 /* POSIX allows platforms that don't support NAN.  But all major
617    machines in the past 15 years have supported something close to
618    IEEE NaN, so we define this unconditionally.  We also must define
619    it on platforms like Solaris 10, where NAN is present but defined
620    as a function pointer rather than a floating point constant.  */
621 #if !defined NAN || 0
622 # if !GNULIB_defined_NAN
623 #  undef NAN
624   /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
625      choke on the expression 0.0 / 0.0.  */
626 #  if defined __DECC || defined _MSC_VER
627 _GL_MATH_INLINE float
_NaN()628 _NaN ()
629 {
630   static float zero = 0.0f;
631   return zero / zero;
632 }
633 #   define NAN (_NaN())
634 #  else
635 #   define NAN (0.0f / 0.0f)
636 #  endif
637 #  define GNULIB_defined_NAN 1
638 # endif
639 #endif
640 
641 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
642    than a floating point constant.  */
643 #if 0
644 # undef HUGE_VALF
645 # define HUGE_VALF (1.0f / 0.0f)
646 # undef HUGE_VAL
647 # define HUGE_VAL (1.0 / 0.0)
648 # undef HUGE_VALL
649 # define HUGE_VALL (1.0L / 0.0L)
650 #endif
651 
652 /* HUGE_VALF is a 'float' Infinity.  */
653 #ifndef HUGE_VALF
654 # if defined _MSC_VER
655 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f.  */
656 #  define HUGE_VALF (1e25f * 1e25f)
657 # else
658 #  define HUGE_VALF (1.0f / 0.0f)
659 # endif
660 #endif
661 
662 /* HUGE_VAL is a 'double' Infinity.  */
663 #ifndef HUGE_VAL
664 # if defined _MSC_VER
665 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0.  */
666 #  define HUGE_VAL (1e250 * 1e250)
667 # else
668 #  define HUGE_VAL (1.0 / 0.0)
669 # endif
670 #endif
671 
672 /* HUGE_VALL is a 'long double' Infinity.  */
673 #ifndef HUGE_VALL
674 # if defined _MSC_VER
675 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L.  */
676 #  define HUGE_VALL (1e250L * 1e250L)
677 # else
678 #  define HUGE_VALL (1.0L / 0.0L)
679 # endif
680 #endif
681 
682 
683 #if defined FP_ILOGB0 && defined FP_ILOGBNAN
684  /* Ensure FP_ILOGB0 and FP_ILOGBNAN are correct.  */
685 # if defined __HAIKU__
686   /* Haiku: match what ilogb() does */
687 #  undef FP_ILOGB0
688 #  undef FP_ILOGBNAN
689 #  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
690 #  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
691 # endif
692 #else
693  /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined.  */
694 # if defined __NetBSD__ || defined __sgi
695   /* NetBSD, IRIX 6.5: match what ilogb() does */
696 #  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
697 #  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
698 # elif defined _AIX
699   /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */
700 #  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
701 #  define FP_ILOGBNAN 2147483647 /* INT_MAX */
702 # elif defined __sun
703   /* Solaris 9: match what ilogb() does */
704 #  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
705 #  define FP_ILOGBNAN 2147483647 /* INT_MAX */
706 # else
707   /* Gnulib defined values.  */
708 #  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
709 #  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
710 # endif
711 #endif
712 
713 
714 #if 0
715 # if 0
716 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
717 #   undef acosf
718 #   define acosf rpl_acosf
719 #  endif
720 _GL_FUNCDECL_RPL (acosf, float, (float x));
721 _GL_CXXALIAS_RPL (acosf, float, (float x));
722 # else
723 #  if !1
724 #   undef acosf
725 _GL_FUNCDECL_SYS (acosf, float, (float x));
726 #  endif
727 _GL_CXXALIAS_SYS (acosf, float, (float x));
728 # endif
729 _GL_CXXALIASWARN (acosf);
730 #elif defined GNULIB_POSIXCHECK
731 # undef acosf
732 # if HAVE_RAW_DECL_ACOSF
733 _GL_WARN_ON_USE (acosf, "acosf is unportable - "
734                  "use gnulib module acosf for portability");
735 # endif
736 #endif
737 
738 #if 0
739 # if !1 || !1
740 #  undef acosl
741 _GL_FUNCDECL_SYS (acosl, long double, (long double x));
742 # endif
743 _GL_CXXALIAS_SYS (acosl, long double, (long double x));
744 _GL_CXXALIASWARN (acosl);
745 #elif defined GNULIB_POSIXCHECK
746 # undef acosl
747 # if HAVE_RAW_DECL_ACOSL
748 _GL_WARN_ON_USE (acosl, "acosl is unportable - "
749                  "use gnulib module acosl for portability");
750 # endif
751 #endif
752 
753 
754 #if 0
755 # if 0
756 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
757 #   undef asinf
758 #   define asinf rpl_asinf
759 #  endif
760 _GL_FUNCDECL_RPL (asinf, float, (float x));
761 _GL_CXXALIAS_RPL (asinf, float, (float x));
762 # else
763 #  if !1
764 #   undef asinf
765 _GL_FUNCDECL_SYS (asinf, float, (float x));
766 #  endif
767 _GL_CXXALIAS_SYS (asinf, float, (float x));
768 # endif
769 _GL_CXXALIASWARN (asinf);
770 #elif defined GNULIB_POSIXCHECK
771 # undef asinf
772 # if HAVE_RAW_DECL_ASINF
773 _GL_WARN_ON_USE (asinf, "asinf is unportable - "
774                  "use gnulib module asinf for portability");
775 # endif
776 #endif
777 
778 #if 0
779 # if !1 || !1
780 #  undef asinl
781 _GL_FUNCDECL_SYS (asinl, long double, (long double x));
782 # endif
783 _GL_CXXALIAS_SYS (asinl, long double, (long double x));
784 _GL_CXXALIASWARN (asinl);
785 #elif defined GNULIB_POSIXCHECK
786 # undef asinl
787 # if HAVE_RAW_DECL_ASINL
788 _GL_WARN_ON_USE (asinl, "asinl is unportable - "
789                  "use gnulib module asinl for portability");
790 # endif
791 #endif
792 
793 
794 #if 0
795 # if 0
796 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
797 #   undef atanf
798 #   define atanf rpl_atanf
799 #  endif
800 _GL_FUNCDECL_RPL (atanf, float, (float x));
801 _GL_CXXALIAS_RPL (atanf, float, (float x));
802 # else
803 #  if !1
804 #   undef atanf
805 _GL_FUNCDECL_SYS (atanf, float, (float x));
806 #  endif
807 _GL_CXXALIAS_SYS (atanf, float, (float x));
808 # endif
809 _GL_CXXALIASWARN (atanf);
810 #elif defined GNULIB_POSIXCHECK
811 # undef atanf
812 # if HAVE_RAW_DECL_ATANF
813 _GL_WARN_ON_USE (atanf, "atanf is unportable - "
814                  "use gnulib module atanf for portability");
815 # endif
816 #endif
817 
818 #if 0
819 # if !1 || !1
820 #  undef atanl
821 _GL_FUNCDECL_SYS (atanl, long double, (long double x));
822 # endif
823 _GL_CXXALIAS_SYS (atanl, long double, (long double x));
824 _GL_CXXALIASWARN (atanl);
825 #elif defined GNULIB_POSIXCHECK
826 # undef atanl
827 # if HAVE_RAW_DECL_ATANL
828 _GL_WARN_ON_USE (atanl, "atanl is unportable - "
829                  "use gnulib module atanl for portability");
830 # endif
831 #endif
832 
833 
834 #if 0
835 # if 0
836 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
837 #   undef atan2f
838 #   define atan2f rpl_atan2f
839 #  endif
840 _GL_FUNCDECL_RPL (atan2f, float, (float y, float x));
841 _GL_CXXALIAS_RPL (atan2f, float, (float y, float x));
842 # else
843 #  if !1
844 #   undef atan2f
845 _GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
846 #  endif
847 _GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
848 # endif
849 _GL_CXXALIASWARN (atan2f);
850 #elif defined GNULIB_POSIXCHECK
851 # undef atan2f
852 # if HAVE_RAW_DECL_ATAN2F
853 _GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
854                  "use gnulib module atan2f for portability");
855 # endif
856 #endif
857 
858 
859 #if 0
860 # if 0
861 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
862 #   undef cbrtf
863 #   define cbrtf rpl_cbrtf
864 #  endif
865 _GL_FUNCDECL_RPL (cbrtf, float, (float x));
866 _GL_CXXALIAS_RPL (cbrtf, float, (float x));
867 # else
868 #  if !1
869 _GL_FUNCDECL_SYS (cbrtf, float, (float x));
870 #  endif
871 _GL_CXXALIAS_SYS (cbrtf, float, (float x));
872 # endif
873 _GL_CXXALIASWARN (cbrtf);
874 #elif defined GNULIB_POSIXCHECK
875 # undef cbrtf
876 # if HAVE_RAW_DECL_CBRTF
877 _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
878                  "use gnulib module cbrtf for portability");
879 # endif
880 #endif
881 
882 #if 0
883 # if !1
884 _GL_FUNCDECL_SYS (cbrt, double, (double x));
885 # endif
886 _GL_CXXALIAS_SYS (cbrt, double, (double x));
887 # if __GLIBC__ >= 2
888 _GL_CXXALIASWARN (cbrt);
889 # endif
890 #elif defined GNULIB_POSIXCHECK
891 # undef cbrt
892 # if HAVE_RAW_DECL_CBRT
893 _GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
894                  "use gnulib module cbrt for portability");
895 # endif
896 #endif
897 
898 #if 0
899 # if 0
900 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
901 #   undef cbrtl
902 #   define cbrtl rpl_cbrtl
903 #  endif
904 _GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
905 _GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
906 # else
907 #  if !1
908 _GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
909 #  endif
910 _GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
911 # endif
912 _GL_CXXALIASWARN (cbrtl);
913 #elif defined GNULIB_POSIXCHECK
914 # undef cbrtl
915 # if HAVE_RAW_DECL_CBRTL
916 _GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
917                  "use gnulib module cbrtl for portability");
918 # endif
919 #endif
920 
921 
922 #if 0
923 # if 0
924 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
925 #   undef ceilf
926 #   define ceilf rpl_ceilf
927 #  endif
928 _GL_FUNCDECL_RPL (ceilf, float, (float x));
929 _GL_CXXALIAS_RPL (ceilf, float, (float x));
930 # else
931 #  if !1
932 #   undef ceilf
933 _GL_FUNCDECL_SYS (ceilf, float, (float x));
934 #  endif
935 _GL_CXXALIAS_SYS (ceilf, float, (float x));
936 # endif
937 _GL_CXXALIASWARN (ceilf);
938 #elif defined GNULIB_POSIXCHECK
939 # undef ceilf
940 # if HAVE_RAW_DECL_CEILF
941 _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
942                  "use gnulib module ceilf for portability");
943 # endif
944 #endif
945 
946 #if 0
947 # if 0
948 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
949 #   undef ceil
950 #   define ceil rpl_ceil
951 #  endif
952 _GL_FUNCDECL_RPL (ceil, double, (double x));
953 _GL_CXXALIAS_RPL (ceil, double, (double x));
954 # else
955 _GL_CXXALIAS_SYS (ceil, double, (double x));
956 # endif
957 # if __GLIBC__ >= 2
958 _GL_CXXALIASWARN (ceil);
959 # endif
960 #endif
961 
962 #if 0
963 # if 0
964 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
965 #   undef ceill
966 #   define ceill rpl_ceill
967 #  endif
968 _GL_FUNCDECL_RPL (ceill, long double, (long double x));
969 _GL_CXXALIAS_RPL (ceill, long double, (long double x));
970 # else
971 #  if !1
972 #   undef ceill
973 _GL_FUNCDECL_SYS (ceill, long double, (long double x));
974 #  endif
975 _GL_CXXALIAS_SYS (ceill, long double, (long double x));
976 # endif
977 _GL_CXXALIASWARN (ceill);
978 #elif defined GNULIB_POSIXCHECK
979 # undef ceill
980 # if HAVE_RAW_DECL_CEILL
981 _GL_WARN_ON_USE (ceill, "ceill is unportable - "
982                  "use gnulib module ceill for portability");
983 # endif
984 #endif
985 
986 
987 #if 0
988 # if !1
989 #  undef copysignf
990 _GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
991 # endif
992 _GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
993 _GL_CXXALIASWARN (copysignf);
994 #elif defined GNULIB_POSIXCHECK
995 # undef copysignf
996 # if HAVE_RAW_DECL_COPYSIGNF
997 _GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
998                  "use gnulib module copysignf for portability");
999 # endif
1000 #endif
1001 
1002 #if 0
1003 # if !1
1004 _GL_FUNCDECL_SYS (copysign, double, (double x, double y));
1005 # endif
1006 _GL_CXXALIAS_SYS (copysign, double, (double x, double y));
1007 # if __GLIBC__ >= 2
1008 _GL_CXXALIASWARN (copysign);
1009 # endif
1010 #elif defined GNULIB_POSIXCHECK
1011 # undef copysign
1012 # if HAVE_RAW_DECL_COPYSIGN
1013 _GL_WARN_ON_USE (copysign, "copysign is unportable - "
1014                  "use gnulib module copysign for portability");
1015 # endif
1016 #endif
1017 
1018 #if 0
1019 # if !1
1020 _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
1021 # endif
1022 _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
1023 _GL_CXXALIASWARN (copysignl);
1024 #elif defined GNULIB_POSIXCHECK
1025 # undef copysignl
1026 # if HAVE_RAW_DECL_COPYSIGNL
1027 _GL_WARN_ON_USE (copysign, "copysignl is unportable - "
1028                  "use gnulib module copysignl for portability");
1029 # endif
1030 #endif
1031 
1032 
1033 #if 0
1034 # if 0
1035 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1036 #   undef cosf
1037 #   define cosf rpl_cosf
1038 #  endif
1039 _GL_FUNCDECL_RPL (cosf, float, (float x));
1040 _GL_CXXALIAS_RPL (cosf, float, (float x));
1041 # else
1042 #  if !1
1043 #   undef cosf
1044 _GL_FUNCDECL_SYS (cosf, float, (float x));
1045 #  endif
1046 _GL_CXXALIAS_SYS (cosf, float, (float x));
1047 # endif
1048 _GL_CXXALIASWARN (cosf);
1049 #elif defined GNULIB_POSIXCHECK
1050 # undef cosf
1051 # if HAVE_RAW_DECL_COSF
1052 _GL_WARN_ON_USE (cosf, "cosf is unportable - "
1053                  "use gnulib module cosf for portability");
1054 # endif
1055 #endif
1056 
1057 #if 0
1058 # if !1 || !1
1059 #  undef cosl
1060 _GL_FUNCDECL_SYS (cosl, long double, (long double x));
1061 # endif
1062 _GL_CXXALIAS_SYS (cosl, long double, (long double x));
1063 _GL_CXXALIASWARN (cosl);
1064 #elif defined GNULIB_POSIXCHECK
1065 # undef cosl
1066 # if HAVE_RAW_DECL_COSL
1067 _GL_WARN_ON_USE (cosl, "cosl is unportable - "
1068                  "use gnulib module cosl for portability");
1069 # endif
1070 #endif
1071 
1072 
1073 #if 0
1074 # if 0
1075 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1076 #   undef coshf
1077 #   define coshf rpl_coshf
1078 #  endif
1079 _GL_FUNCDECL_RPL (coshf, float, (float x));
1080 _GL_CXXALIAS_RPL (coshf, float, (float x));
1081 # else
1082 #  if !1
1083 #   undef coshf
1084 _GL_FUNCDECL_SYS (coshf, float, (float x));
1085 #  endif
1086 _GL_CXXALIAS_SYS (coshf, float, (float x));
1087 # endif
1088 _GL_CXXALIASWARN (coshf);
1089 #elif defined GNULIB_POSIXCHECK
1090 # undef coshf
1091 # if HAVE_RAW_DECL_COSHF
1092 _GL_WARN_ON_USE (coshf, "coshf is unportable - "
1093                  "use gnulib module coshf for portability");
1094 # endif
1095 #endif
1096 
1097 
1098 #if 0
1099 # if 0
1100 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1101 #   undef expf
1102 #   define expf rpl_expf
1103 #  endif
1104 _GL_FUNCDECL_RPL (expf, float, (float x));
1105 _GL_CXXALIAS_RPL (expf, float, (float x));
1106 # else
1107 #  if !1
1108 #   undef expf
1109 _GL_FUNCDECL_SYS (expf, float, (float x));
1110 #  endif
1111 _GL_CXXALIAS_SYS (expf, float, (float x));
1112 # endif
1113 _GL_CXXALIASWARN (expf);
1114 #elif defined GNULIB_POSIXCHECK
1115 # undef expf
1116 # if HAVE_RAW_DECL_EXPF
1117 _GL_WARN_ON_USE (expf, "expf is unportable - "
1118                  "use gnulib module expf for portability");
1119 # endif
1120 #endif
1121 
1122 #if 0
1123 # if 0
1124 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1125 #   undef expl
1126 #   define expl rpl_expl
1127 #  endif
1128 _GL_FUNCDECL_RPL (expl, long double, (long double x));
1129 _GL_CXXALIAS_RPL (expl, long double, (long double x));
1130 # else
1131 #  if !1 || !1
1132 #   undef expl
1133 _GL_FUNCDECL_SYS (expl, long double, (long double x));
1134 #  endif
1135 _GL_CXXALIAS_SYS (expl, long double, (long double x));
1136 # endif
1137 _GL_CXXALIASWARN (expl);
1138 #elif defined GNULIB_POSIXCHECK
1139 # undef expl
1140 # if HAVE_RAW_DECL_EXPL
1141 _GL_WARN_ON_USE (expl, "expl is unportable - "
1142                  "use gnulib module expl for portability");
1143 # endif
1144 #endif
1145 
1146 
1147 #if 0
1148 # if !1
1149 _GL_FUNCDECL_SYS (exp2f, float, (float x));
1150 # endif
1151 _GL_CXXALIAS_SYS (exp2f, float, (float x));
1152 _GL_CXXALIASWARN (exp2f);
1153 #elif defined GNULIB_POSIXCHECK
1154 # undef exp2f
1155 # if HAVE_RAW_DECL_EXP2F
1156 _GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
1157                  "use gnulib module exp2f for portability");
1158 # endif
1159 #endif
1160 
1161 #if 0
1162 # if 0
1163 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1164 #   undef exp2
1165 #   define exp2 rpl_exp2
1166 #  endif
1167 _GL_FUNCDECL_RPL (exp2, double, (double x));
1168 _GL_CXXALIAS_RPL (exp2, double, (double x));
1169 # else
1170 #  if !1
1171 _GL_FUNCDECL_SYS (exp2, double, (double x));
1172 #  endif
1173 _GL_CXXALIAS_SYS (exp2, double, (double x));
1174 # endif
1175 # if __GLIBC__ >= 2
1176 _GL_CXXALIASWARN (exp2);
1177 # endif
1178 #elif defined GNULIB_POSIXCHECK
1179 # undef exp2
1180 # if HAVE_RAW_DECL_EXP2
1181 _GL_WARN_ON_USE (exp2, "exp2 is unportable - "
1182                  "use gnulib module exp2 for portability");
1183 # endif
1184 #endif
1185 
1186 #if 0
1187 # if 0
1188 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1189 #   undef exp2l
1190 #   define exp2l rpl_exp2l
1191 #  endif
1192 _GL_FUNCDECL_RPL (exp2l, long double, (long double x));
1193 _GL_CXXALIAS_RPL (exp2l, long double, (long double x));
1194 # else
1195 #  if !1
1196 #   undef exp2l
1197 _GL_FUNCDECL_SYS (exp2l, long double, (long double x));
1198 #  endif
1199 _GL_CXXALIAS_SYS (exp2l, long double, (long double x));
1200 # endif
1201 _GL_CXXALIASWARN (exp2l);
1202 #elif defined GNULIB_POSIXCHECK
1203 # undef exp2l
1204 # if HAVE_RAW_DECL_EXP2L
1205 _GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
1206                  "use gnulib module exp2l for portability");
1207 # endif
1208 #endif
1209 
1210 
1211 #if 0
1212 # if 0
1213 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1214 #   undef expm1f
1215 #   define expm1f rpl_expm1f
1216 #  endif
1217 _GL_FUNCDECL_RPL (expm1f, float, (float x));
1218 _GL_CXXALIAS_RPL (expm1f, float, (float x));
1219 # else
1220 #  if !1
1221 _GL_FUNCDECL_SYS (expm1f, float, (float x));
1222 #  endif
1223 _GL_CXXALIAS_SYS (expm1f, float, (float x));
1224 # endif
1225 _GL_CXXALIASWARN (expm1f);
1226 #elif defined GNULIB_POSIXCHECK
1227 # undef expm1f
1228 # if HAVE_RAW_DECL_EXPM1F
1229 _GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
1230                  "use gnulib module expm1f for portability");
1231 # endif
1232 #endif
1233 
1234 #if 0
1235 # if 0
1236 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1237 #   undef expm1
1238 #   define expm1 rpl_expm1
1239 #  endif
1240 _GL_FUNCDECL_RPL (expm1, double, (double x));
1241 _GL_CXXALIAS_RPL (expm1, double, (double x));
1242 # else
1243 #  if !1
1244 _GL_FUNCDECL_SYS (expm1, double, (double x));
1245 #  endif
1246 _GL_CXXALIAS_SYS (expm1, double, (double x));
1247 # endif
1248 # if __GLIBC__ >= 2
1249 _GL_CXXALIASWARN (expm1);
1250 # endif
1251 #elif defined GNULIB_POSIXCHECK
1252 # undef expm1
1253 # if HAVE_RAW_DECL_EXPM1
1254 _GL_WARN_ON_USE (expm1, "expm1 is unportable - "
1255                  "use gnulib module expm1 for portability");
1256 # endif
1257 #endif
1258 
1259 #if 0
1260 # if 0
1261 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1262 #   undef expm1l
1263 #   define expm1l rpl_expm1l
1264 #  endif
1265 _GL_FUNCDECL_RPL (expm1l, long double, (long double x));
1266 _GL_CXXALIAS_RPL (expm1l, long double, (long double x));
1267 # else
1268 #  if !1
1269 #   undef expm1l
1270 #   if !(defined __cplusplus && defined _AIX)
1271 _GL_FUNCDECL_SYS (expm1l, long double, (long double x));
1272 #   endif
1273 #  endif
1274 _GL_CXXALIAS_SYS (expm1l, long double, (long double x));
1275 # endif
1276 _GL_CXXALIASWARN (expm1l);
1277 #elif defined GNULIB_POSIXCHECK
1278 # undef expm1l
1279 # if HAVE_RAW_DECL_EXPM1L
1280 _GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
1281                  "use gnulib module expm1l for portability");
1282 # endif
1283 #endif
1284 
1285 
1286 #if 0
1287 # if !1
1288 #  undef fabsf
1289 _GL_FUNCDECL_SYS (fabsf, float, (float x));
1290 # endif
1291 _GL_CXXALIAS_SYS (fabsf, float, (float x));
1292 _GL_CXXALIASWARN (fabsf);
1293 #elif defined GNULIB_POSIXCHECK
1294 # undef fabsf
1295 # if HAVE_RAW_DECL_FABSF
1296 _GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
1297                  "use gnulib module fabsf for portability");
1298 # endif
1299 #endif
1300 
1301 #if 0
1302 # if 0
1303 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1304 #   undef fabsl
1305 #   define fabsl rpl_fabsl
1306 #  endif
1307 _GL_FUNCDECL_RPL (fabsl, long double, (long double x));
1308 _GL_CXXALIAS_RPL (fabsl, long double, (long double x));
1309 # else
1310 #  if !1
1311 #   undef fabsl
1312 _GL_FUNCDECL_SYS (fabsl, long double, (long double x));
1313 #  endif
1314 _GL_CXXALIAS_SYS (fabsl, long double, (long double x));
1315 # endif
1316 _GL_CXXALIASWARN (fabsl);
1317 #elif defined GNULIB_POSIXCHECK
1318 # undef fabsl
1319 # if HAVE_RAW_DECL_FABSL
1320 _GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
1321                  "use gnulib module fabsl for portability");
1322 # endif
1323 #endif
1324 
1325 
1326 #if 0
1327 # if 0
1328 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1329 #   undef floorf
1330 #   define floorf rpl_floorf
1331 #  endif
1332 _GL_FUNCDECL_RPL (floorf, float, (float x));
1333 _GL_CXXALIAS_RPL (floorf, float, (float x));
1334 # else
1335 #  if !1
1336 #   undef floorf
1337 _GL_FUNCDECL_SYS (floorf, float, (float x));
1338 #  endif
1339 _GL_CXXALIAS_SYS (floorf, float, (float x));
1340 # endif
1341 _GL_CXXALIASWARN (floorf);
1342 #elif defined GNULIB_POSIXCHECK
1343 # undef floorf
1344 # if HAVE_RAW_DECL_FLOORF
1345 _GL_WARN_ON_USE (floorf, "floorf is unportable - "
1346                  "use gnulib module floorf for portability");
1347 # endif
1348 #endif
1349 
1350 #if 0
1351 # if 0
1352 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1353 #   undef floor
1354 #   define floor rpl_floor
1355 #  endif
1356 _GL_FUNCDECL_RPL (floor, double, (double x));
1357 _GL_CXXALIAS_RPL (floor, double, (double x));
1358 # else
1359 _GL_CXXALIAS_SYS (floor, double, (double x));
1360 # endif
1361 # if __GLIBC__ >= 2
1362 _GL_CXXALIASWARN (floor);
1363 # endif
1364 #endif
1365 
1366 #if 0
1367 # if 0
1368 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1369 #   undef floorl
1370 #   define floorl rpl_floorl
1371 #  endif
1372 _GL_FUNCDECL_RPL (floorl, long double, (long double x));
1373 _GL_CXXALIAS_RPL (floorl, long double, (long double x));
1374 # else
1375 #  if !1
1376 #   undef floorl
1377 _GL_FUNCDECL_SYS (floorl, long double, (long double x));
1378 #  endif
1379 _GL_CXXALIAS_SYS (floorl, long double, (long double x));
1380 # endif
1381 _GL_CXXALIASWARN (floorl);
1382 #elif defined GNULIB_POSIXCHECK
1383 # undef floorl
1384 # if HAVE_RAW_DECL_FLOORL
1385 _GL_WARN_ON_USE (floorl, "floorl is unportable - "
1386                  "use gnulib module floorl for portability");
1387 # endif
1388 #endif
1389 
1390 
1391 #if 0
1392 # if 0
1393 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1394 #   undef fmaf
1395 #   define fmaf rpl_fmaf
1396 #  endif
1397 _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
1398 _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
1399 # else
1400 #  if !1
1401 #   undef fmaf
1402 _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
1403 #  endif
1404 _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
1405 # endif
1406 _GL_CXXALIASWARN (fmaf);
1407 #elif defined GNULIB_POSIXCHECK
1408 # undef fmaf
1409 # if HAVE_RAW_DECL_FMAF
1410 _GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
1411                  "use gnulib module fmaf for portability");
1412 # endif
1413 #endif
1414 
1415 #if 0
1416 # if 0
1417 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1418 #   undef fma
1419 #   define fma rpl_fma
1420 #  endif
1421 _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
1422 _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
1423 # else
1424 #  if !1
1425 #   undef fma
1426 _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
1427 #  endif
1428 _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
1429 # endif
1430 # if __GLIBC__ >= 2
1431 _GL_CXXALIASWARN (fma);
1432 # endif
1433 #elif defined GNULIB_POSIXCHECK
1434 # undef fma
1435 # if HAVE_RAW_DECL_FMA
1436 _GL_WARN_ON_USE (fma, "fma is unportable - "
1437                  "use gnulib module fma for portability");
1438 # endif
1439 #endif
1440 
1441 #if 0
1442 # if 0
1443 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1444 #   undef fmal
1445 #   define fmal rpl_fmal
1446 #  endif
1447 _GL_FUNCDECL_RPL (fmal, long double,
1448                   (long double x, long double y, long double z));
1449 _GL_CXXALIAS_RPL (fmal, long double,
1450                   (long double x, long double y, long double z));
1451 # else
1452 #  if !1
1453 #   undef fmal
1454 #   if !(defined __cplusplus && defined _AIX)
1455 _GL_FUNCDECL_SYS (fmal, long double,
1456                   (long double x, long double y, long double z));
1457 #   endif
1458 #  endif
1459 _GL_CXXALIAS_SYS (fmal, long double,
1460                   (long double x, long double y, long double z));
1461 # endif
1462 _GL_CXXALIASWARN (fmal);
1463 #elif defined GNULIB_POSIXCHECK
1464 # undef fmal
1465 # if HAVE_RAW_DECL_FMAL
1466 _GL_WARN_ON_USE (fmal, "fmal is unportable - "
1467                  "use gnulib module fmal for portability");
1468 # endif
1469 #endif
1470 
1471 
1472 #if 0
1473 # if 0
1474 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1475 #   undef fmodf
1476 #   define fmodf rpl_fmodf
1477 #  endif
1478 _GL_FUNCDECL_RPL (fmodf, float, (float x, float y));
1479 _GL_CXXALIAS_RPL (fmodf, float, (float x, float y));
1480 # else
1481 #  if !1
1482 #   undef fmodf
1483 _GL_FUNCDECL_SYS (fmodf, float, (float x, float y));
1484 #  endif
1485 _GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
1486 # endif
1487 _GL_CXXALIASWARN (fmodf);
1488 #elif defined GNULIB_POSIXCHECK
1489 # undef fmodf
1490 # if HAVE_RAW_DECL_FMODF
1491 _GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
1492                  "use gnulib module fmodf for portability");
1493 # endif
1494 #endif
1495 
1496 #if 0
1497 # if 0
1498 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1499 #   undef fmod
1500 #   define fmod rpl_fmod
1501 #  endif
1502 _GL_FUNCDECL_RPL (fmod, double, (double x, double y));
1503 _GL_CXXALIAS_RPL (fmod, double, (double x, double y));
1504 # else
1505 _GL_CXXALIAS_SYS (fmod, double, (double x, double y));
1506 # endif
1507 # if __GLIBC__ >= 2
1508 _GL_CXXALIASWARN (fmod);
1509 # endif
1510 #elif defined GNULIB_POSIXCHECK
1511 # undef fmod
1512 # if HAVE_RAW_DECL_FMOD
1513 _GL_WARN_ON_USE (fmod, "fmod has portability problems - "
1514                  "use gnulib module fmod for portability");
1515 # endif
1516 #endif
1517 
1518 #if 0
1519 # if 0
1520 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1521 #   undef fmodl
1522 #   define fmodl rpl_fmodl
1523 #  endif
1524 _GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y));
1525 _GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y));
1526 # else
1527 #  if !1
1528 #   undef fmodl
1529 _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
1530 #  endif
1531 _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
1532 # endif
1533 _GL_CXXALIASWARN (fmodl);
1534 #elif defined GNULIB_POSIXCHECK
1535 # undef fmodl
1536 # if HAVE_RAW_DECL_FMODL
1537 _GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
1538                  "use gnulib module fmodl for portability");
1539 # endif
1540 #endif
1541 
1542 
1543 /* Write x as
1544      x = mantissa * 2^exp
1545    where
1546      If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1547      If x is zero: mantissa = x, exp = 0.
1548      If x is infinite or NaN: mantissa = x, exp unspecified.
1549    Store exp in *EXPPTR and return mantissa.  */
1550 #if 0
1551 # if 0
1552 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1553 #   undef frexpf
1554 #   define frexpf rpl_frexpf
1555 #  endif
1556 _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1557 _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr));
1558 # else
1559 #  if !1
1560 #   undef frexpf
1561 _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1562 #  endif
1563 _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
1564 # endif
1565 _GL_CXXALIASWARN (frexpf);
1566 #elif defined GNULIB_POSIXCHECK
1567 # undef frexpf
1568 # if HAVE_RAW_DECL_FREXPF
1569 _GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
1570                  "use gnulib module frexpf for portability");
1571 # endif
1572 #endif
1573 
1574 /* Write x as
1575      x = mantissa * 2^exp
1576    where
1577      If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1578      If x is zero: mantissa = x, exp = 0.
1579      If x is infinite or NaN: mantissa = x, exp unspecified.
1580    Store exp in *EXPPTR and return mantissa.  */
1581 #if 1
1582 # if 0
1583 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1584 #   undef frexp
1585 #   define frexp rpl_frexp
1586 #  endif
1587 _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
1588 _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
1589 # else
1590 _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
1591 # endif
1592 # if __GLIBC__ >= 2
1593 _GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr));
1594 # endif
1595 #elif defined GNULIB_POSIXCHECK
1596 # undef frexp
1597 /* Assume frexp is always declared.  */
1598 _GL_WARN_ON_USE (frexp, "frexp is unportable - "
1599                  "use gnulib module frexp for portability");
1600 #endif
1601 
1602 /* Write x as
1603      x = mantissa * 2^exp
1604    where
1605      If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1606      If x is zero: mantissa = x, exp = 0.
1607      If x is infinite or NaN: mantissa = x, exp unspecified.
1608    Store exp in *EXPPTR and return mantissa.  */
1609 #if 1 && 0
1610 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1611 #  undef frexpl
1612 #  define frexpl rpl_frexpl
1613 # endif
1614 _GL_FUNCDECL_RPL (frexpl, long double,
1615                   (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1616 _GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
1617 #else
1618 # if !1
1619 _GL_FUNCDECL_SYS (frexpl, long double,
1620                   (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1621 # endif
1622 # if 1
1623 _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
1624 # endif
1625 #endif
1626 #if 1 && !(0 && !1)
1627 _GL_CXXALIASWARN (frexpl);
1628 #endif
1629 #if !1 && defined GNULIB_POSIXCHECK
1630 # undef frexpl
1631 # if HAVE_RAW_DECL_FREXPL
1632 _GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
1633                  "use gnulib module frexpl for portability");
1634 # endif
1635 #endif
1636 
1637 
1638 /* Return sqrt(x^2+y^2).  */
1639 #if 0
1640 # if 0
1641 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1642 #   undef hypotf
1643 #   define hypotf rpl_hypotf
1644 #  endif
1645 _GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
1646 _GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
1647 # else
1648 #  if !1
1649 _GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
1650 #  endif
1651 _GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
1652 # endif
1653 _GL_CXXALIASWARN (hypotf);
1654 #elif defined GNULIB_POSIXCHECK
1655 # undef hypotf
1656 # if HAVE_RAW_DECL_HYPOTF
1657 _GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
1658                  "use gnulib module hypotf for portability");
1659 # endif
1660 #endif
1661 
1662 /* Return sqrt(x^2+y^2).  */
1663 #if 0
1664 # if 0
1665 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1666 #   undef hypot
1667 #   define hypot rpl_hypot
1668 #  endif
1669 _GL_FUNCDECL_RPL (hypot, double, (double x, double y));
1670 _GL_CXXALIAS_RPL (hypot, double, (double x, double y));
1671 # else
1672 _GL_CXXALIAS_SYS (hypot, double, (double x, double y));
1673 # endif
1674 # if __GLIBC__ >= 2
1675 _GL_CXXALIASWARN (hypot);
1676 # endif
1677 #elif defined GNULIB_POSIXCHECK
1678 # undef hypot
1679 # if HAVE_RAW_DECL_HYPOT
1680 _GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
1681                  "use gnulib module hypot for portability");
1682 # endif
1683 #endif
1684 
1685 /* Return sqrt(x^2+y^2).  */
1686 #if 0
1687 # if 0
1688 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1689 #   undef hypotl
1690 #   define hypotl rpl_hypotl
1691 #  endif
1692 _GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y));
1693 _GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y));
1694 # else
1695 #  if !1
1696 _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
1697 #  endif
1698 _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
1699 # endif
1700 _GL_CXXALIASWARN (hypotl);
1701 #elif defined GNULIB_POSIXCHECK
1702 # undef hypotl
1703 # if HAVE_RAW_DECL_HYPOTL
1704 _GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
1705                  "use gnulib module hypotl for portability");
1706 # endif
1707 #endif
1708 
1709 
1710 #if 0
1711 # if 0
1712 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1713 #   undef ilogbf
1714 #   define ilogbf rpl_ilogbf
1715 #  endif
1716 _GL_FUNCDECL_RPL (ilogbf, int, (float x));
1717 _GL_CXXALIAS_RPL (ilogbf, int, (float x));
1718 # else
1719 #  if !1
1720 _GL_FUNCDECL_SYS (ilogbf, int, (float x));
1721 #  endif
1722 _GL_CXXALIAS_SYS (ilogbf, int, (float x));
1723 # endif
1724 _GL_CXXALIASWARN (ilogbf);
1725 #elif defined GNULIB_POSIXCHECK
1726 # undef ilogbf
1727 # if HAVE_RAW_DECL_ILOGBF
1728 _GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
1729                  "use gnulib module ilogbf for portability");
1730 # endif
1731 #endif
1732 
1733 #if 0
1734 # if 0
1735 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1736 #   undef ilogb
1737 #   define ilogb rpl_ilogb
1738 #  endif
1739 _GL_FUNCDECL_RPL (ilogb, int, (double x));
1740 _GL_CXXALIAS_RPL (ilogb, int, (double x));
1741 # else
1742 #  if !1
1743 _GL_FUNCDECL_SYS (ilogb, int, (double x));
1744 #  endif
1745 _GL_CXXALIAS_SYS (ilogb, int, (double x));
1746 # endif
1747 # if __GLIBC__ >= 2
1748 _GL_CXXALIASWARN (ilogb);
1749 # endif
1750 #elif defined GNULIB_POSIXCHECK
1751 # undef ilogb
1752 # if HAVE_RAW_DECL_ILOGB
1753 _GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
1754                  "use gnulib module ilogb for portability");
1755 # endif
1756 #endif
1757 
1758 #if 0
1759 # if 0
1760 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1761 #   undef ilogbl
1762 #   define ilogbl rpl_ilogbl
1763 #  endif
1764 _GL_FUNCDECL_RPL (ilogbl, int, (long double x));
1765 _GL_CXXALIAS_RPL (ilogbl, int, (long double x));
1766 # else
1767 #  if !1
1768 _GL_FUNCDECL_SYS (ilogbl, int, (long double x));
1769 #  endif
1770 _GL_CXXALIAS_SYS (ilogbl, int, (long double x));
1771 # endif
1772 _GL_CXXALIASWARN (ilogbl);
1773 #elif defined GNULIB_POSIXCHECK
1774 # undef ilogbl
1775 # if HAVE_RAW_DECL_ILOGBL
1776 _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
1777                  "use gnulib module ilogbl for portability");
1778 # endif
1779 #endif
1780 
1781 
1782 /* Return x * 2^exp.  */
1783 #if 0
1784 # if !1
1785 #  undef ldexpf
1786 _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
1787 # endif
1788 _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
1789 _GL_CXXALIASWARN (ldexpf);
1790 #elif defined GNULIB_POSIXCHECK
1791 # undef ldexpf
1792 # if HAVE_RAW_DECL_LDEXPF
1793 _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
1794                  "use gnulib module ldexpf for portability");
1795 # endif
1796 #endif
1797 
1798 /* Return x * 2^exp.  */
1799 #if 0 && 0
1800 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1801 #  undef ldexpl
1802 #  define ldexpl rpl_ldexpl
1803 # endif
1804 _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
1805 _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
1806 #else
1807 # if !1
1808 _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
1809 # endif
1810 # if 0
1811 _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
1812 # endif
1813 #endif
1814 #if 0
1815 _GL_CXXALIASWARN (ldexpl);
1816 #endif
1817 #if !0 && defined GNULIB_POSIXCHECK
1818 # undef ldexpl
1819 # if HAVE_RAW_DECL_LDEXPL
1820 _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
1821                  "use gnulib module ldexpl for portability");
1822 # endif
1823 #endif
1824 
1825 
1826 #if 0
1827 # if 0
1828 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1829 #   undef logf
1830 #   define logf rpl_logf
1831 #  endif
1832 _GL_FUNCDECL_RPL (logf, float, (float x));
1833 _GL_CXXALIAS_RPL (logf, float, (float x));
1834 # else
1835 #  if !1
1836 #   undef logf
1837 _GL_FUNCDECL_SYS (logf, float, (float x));
1838 #  endif
1839 _GL_CXXALIAS_SYS (logf, float, (float x));
1840 # endif
1841 _GL_CXXALIASWARN (logf);
1842 #elif defined GNULIB_POSIXCHECK
1843 # undef logf
1844 # if HAVE_RAW_DECL_LOGF
1845 _GL_WARN_ON_USE (logf, "logf is unportable - "
1846                  "use gnulib module logf for portability");
1847 # endif
1848 #endif
1849 
1850 #if 0
1851 # if 0
1852 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1853 #   undef log
1854 #   define log rpl_log
1855 #  endif
1856 _GL_FUNCDECL_RPL (log, double, (double x));
1857 _GL_CXXALIAS_RPL (log, double, (double x));
1858 # else
1859 _GL_CXXALIAS_SYS (log, double, (double x));
1860 # endif
1861 # if __GLIBC__ >= 2
1862 _GL_CXXALIASWARN (log);
1863 # endif
1864 #elif defined GNULIB_POSIXCHECK
1865 # undef log
1866 # if HAVE_RAW_DECL_LOG
1867 _GL_WARN_ON_USE (log, "log has portability problems - "
1868                  "use gnulib module log for portability");
1869 # endif
1870 #endif
1871 
1872 #if 0
1873 # if 0
1874 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1875 #   undef logl
1876 #   define logl rpl_logl
1877 #  endif
1878 _GL_FUNCDECL_RPL (logl, long double, (long double x));
1879 _GL_CXXALIAS_RPL (logl, long double, (long double x));
1880 # else
1881 #  if !1 || !1
1882 #   undef logl
1883 _GL_FUNCDECL_SYS (logl, long double, (long double x));
1884 #  endif
1885 _GL_CXXALIAS_SYS (logl, long double, (long double x));
1886 # endif
1887 _GL_CXXALIASWARN (logl);
1888 #elif defined GNULIB_POSIXCHECK
1889 # undef logl
1890 # if HAVE_RAW_DECL_LOGL
1891 _GL_WARN_ON_USE (logl, "logl is unportable - "
1892                  "use gnulib module logl for portability");
1893 # endif
1894 #endif
1895 
1896 
1897 #if 0
1898 # if 0
1899 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1900 #   undef log10f
1901 #   define log10f rpl_log10f
1902 #  endif
1903 _GL_FUNCDECL_RPL (log10f, float, (float x));
1904 _GL_CXXALIAS_RPL (log10f, float, (float x));
1905 # else
1906 #  if !1
1907 #   undef log10f
1908 _GL_FUNCDECL_SYS (log10f, float, (float x));
1909 #  endif
1910 _GL_CXXALIAS_SYS (log10f, float, (float x));
1911 # endif
1912 _GL_CXXALIASWARN (log10f);
1913 #elif defined GNULIB_POSIXCHECK
1914 # undef log10f
1915 # if HAVE_RAW_DECL_LOG10F
1916 _GL_WARN_ON_USE (log10f, "log10f is unportable - "
1917                  "use gnulib module log10f for portability");
1918 # endif
1919 #endif
1920 
1921 #if 0
1922 # if 0
1923 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1924 #   undef log10
1925 #   define log10 rpl_log10
1926 #  endif
1927 _GL_FUNCDECL_RPL (log10, double, (double x));
1928 _GL_CXXALIAS_RPL (log10, double, (double x));
1929 # else
1930 _GL_CXXALIAS_SYS (log10, double, (double x));
1931 # endif
1932 # if __GLIBC__ >= 2
1933 _GL_CXXALIASWARN (log10);
1934 # endif
1935 #elif defined GNULIB_POSIXCHECK
1936 # undef log10
1937 # if HAVE_RAW_DECL_LOG10
1938 _GL_WARN_ON_USE (log10, "log10 has portability problems - "
1939                  "use gnulib module log10 for portability");
1940 # endif
1941 #endif
1942 
1943 #if 0
1944 # if 0
1945 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1946 #   undef log10l
1947 #   define log10l rpl_log10l
1948 #  endif
1949 _GL_FUNCDECL_RPL (log10l, long double, (long double x));
1950 _GL_CXXALIAS_RPL (log10l, long double, (long double x));
1951 # else
1952 #  if !1 || !1
1953 #   undef log10l
1954 _GL_FUNCDECL_SYS (log10l, long double, (long double x));
1955 #  endif
1956 _GL_CXXALIAS_SYS (log10l, long double, (long double x));
1957 # endif
1958 _GL_CXXALIASWARN (log10l);
1959 #elif defined GNULIB_POSIXCHECK
1960 # undef log10l
1961 # if HAVE_RAW_DECL_LOG10L
1962 _GL_WARN_ON_USE (log10l, "log10l is unportable - "
1963                  "use gnulib module log10l for portability");
1964 # endif
1965 #endif
1966 
1967 
1968 #if 0
1969 # if 0
1970 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1971 #   undef log1pf
1972 #   define log1pf rpl_log1pf
1973 #  endif
1974 _GL_FUNCDECL_RPL (log1pf, float, (float x));
1975 _GL_CXXALIAS_RPL (log1pf, float, (float x));
1976 # else
1977 #  if !1
1978 _GL_FUNCDECL_SYS (log1pf, float, (float x));
1979 #  endif
1980 _GL_CXXALIAS_SYS (log1pf, float, (float x));
1981 # endif
1982 _GL_CXXALIASWARN (log1pf);
1983 #elif defined GNULIB_POSIXCHECK
1984 # undef log1pf
1985 # if HAVE_RAW_DECL_LOG1PF
1986 _GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
1987                  "use gnulib module log1pf for portability");
1988 # endif
1989 #endif
1990 
1991 #if 0
1992 # if 0
1993 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1994 #   undef log1p
1995 #   define log1p rpl_log1p
1996 #  endif
1997 _GL_FUNCDECL_RPL (log1p, double, (double x));
1998 _GL_CXXALIAS_RPL (log1p, double, (double x));
1999 # else
2000 #  if !1
2001 _GL_FUNCDECL_SYS (log1p, double, (double x));
2002 #  endif
2003 _GL_CXXALIAS_SYS (log1p, double, (double x));
2004 # endif
2005 # if __GLIBC__ >= 2
2006 _GL_CXXALIASWARN (log1p);
2007 # endif
2008 #elif defined GNULIB_POSIXCHECK
2009 # undef log1p
2010 # if HAVE_RAW_DECL_LOG1P
2011 _GL_WARN_ON_USE (log1p, "log1p has portability problems - "
2012                  "use gnulib module log1p for portability");
2013 # endif
2014 #endif
2015 
2016 #if 0
2017 # if 0
2018 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2019 #   undef log1pl
2020 #   define log1pl rpl_log1pl
2021 #  endif
2022 _GL_FUNCDECL_RPL (log1pl, long double, (long double x));
2023 _GL_CXXALIAS_RPL (log1pl, long double, (long double x));
2024 # else
2025 #  if !1
2026 _GL_FUNCDECL_SYS (log1pl, long double, (long double x));
2027 #  endif
2028 _GL_CXXALIAS_SYS (log1pl, long double, (long double x));
2029 # endif
2030 _GL_CXXALIASWARN (log1pl);
2031 #elif defined GNULIB_POSIXCHECK
2032 # undef log1pl
2033 # if HAVE_RAW_DECL_LOG1PL
2034 _GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
2035                  "use gnulib module log1pl for portability");
2036 # endif
2037 #endif
2038 
2039 
2040 #if 0
2041 # if 0
2042 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2043 #   undef log2f
2044 #   define log2f rpl_log2f
2045 #  endif
2046 _GL_FUNCDECL_RPL (log2f, float, (float x));
2047 _GL_CXXALIAS_RPL (log2f, float, (float x));
2048 # else
2049 #  if !1
2050 #   undef log2f
2051 _GL_FUNCDECL_SYS (log2f, float, (float x));
2052 #  endif
2053 _GL_CXXALIAS_SYS (log2f, float, (float x));
2054 # endif
2055 _GL_CXXALIASWARN (log2f);
2056 #elif defined GNULIB_POSIXCHECK
2057 # undef log2f
2058 # if HAVE_RAW_DECL_LOG2F
2059 _GL_WARN_ON_USE (log2f, "log2f is unportable - "
2060                  "use gnulib module log2f for portability");
2061 # endif
2062 #endif
2063 
2064 #if 0
2065 # if 0
2066 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2067 #   undef log2
2068 #   define log2 rpl_log2
2069 #  endif
2070 _GL_FUNCDECL_RPL (log2, double, (double x));
2071 _GL_CXXALIAS_RPL (log2, double, (double x));
2072 # else
2073 #  if !1
2074 #   undef log2
2075 _GL_FUNCDECL_SYS (log2, double, (double x));
2076 #  endif
2077 _GL_CXXALIAS_SYS (log2, double, (double x));
2078 # endif
2079 # if __GLIBC__ >= 2
2080 _GL_CXXALIASWARN (log2);
2081 # endif
2082 #elif defined GNULIB_POSIXCHECK
2083 # undef log2
2084 # if HAVE_RAW_DECL_LOG2
2085 _GL_WARN_ON_USE (log2, "log2 is unportable - "
2086                  "use gnulib module log2 for portability");
2087 # endif
2088 #endif
2089 
2090 #if 0
2091 # if 0
2092 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2093 #   undef log2l
2094 #   define log2l rpl_log2l
2095 #  endif
2096 _GL_FUNCDECL_RPL (log2l, long double, (long double x));
2097 _GL_CXXALIAS_RPL (log2l, long double, (long double x));
2098 # else
2099 #  if !1
2100 _GL_FUNCDECL_SYS (log2l, long double, (long double x));
2101 #  endif
2102 _GL_CXXALIAS_SYS (log2l, long double, (long double x));
2103 # endif
2104 _GL_CXXALIASWARN (log2l);
2105 #elif defined GNULIB_POSIXCHECK
2106 # undef log2l
2107 # if HAVE_RAW_DECL_LOG2L
2108 _GL_WARN_ON_USE (log2l, "log2l is unportable - "
2109                  "use gnulib module log2l for portability");
2110 # endif
2111 #endif
2112 
2113 
2114 #if 0
2115 # if 0
2116 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2117 #   undef logbf
2118 #   define logbf rpl_logbf
2119 #  endif
2120 _GL_FUNCDECL_RPL (logbf, float, (float x));
2121 _GL_CXXALIAS_RPL (logbf, float, (float x));
2122 # else
2123 #  if !1
2124 _GL_FUNCDECL_SYS (logbf, float, (float x));
2125 #  endif
2126 _GL_CXXALIAS_SYS (logbf, float, (float x));
2127 # endif
2128 _GL_CXXALIASWARN (logbf);
2129 #elif defined GNULIB_POSIXCHECK
2130 # undef logbf
2131 # if HAVE_RAW_DECL_LOGBF
2132 _GL_WARN_ON_USE (logbf, "logbf is unportable - "
2133                  "use gnulib module logbf for portability");
2134 # endif
2135 #endif
2136 
2137 #if 0
2138 # if 0
2139 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2140 #   undef logb
2141 #   define logb rpl_logb
2142 #  endif
2143 _GL_FUNCDECL_RPL (logb, double, (double x));
2144 _GL_CXXALIAS_RPL (logb, double, (double x));
2145 # else
2146 #  if !1
2147 _GL_FUNCDECL_SYS (logb, double, (double x));
2148 #  endif
2149 _GL_CXXALIAS_SYS (logb, double, (double x));
2150 # endif
2151 # if __GLIBC__ >= 2
2152 _GL_CXXALIASWARN (logb);
2153 # endif
2154 #elif defined GNULIB_POSIXCHECK
2155 # undef logb
2156 # if HAVE_RAW_DECL_LOGB
2157 _GL_WARN_ON_USE (logb, "logb is unportable - "
2158                  "use gnulib module logb for portability");
2159 # endif
2160 #endif
2161 
2162 #if 0
2163 # if 0
2164 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2165 #   undef logbl
2166 #   define logbl rpl_logbl
2167 #  endif
2168 _GL_FUNCDECL_RPL (logbl, long double, (long double x));
2169 _GL_CXXALIAS_RPL (logbl, long double, (long double x));
2170 # else
2171 #  if !1
2172 _GL_FUNCDECL_SYS (logbl, long double, (long double x));
2173 #  endif
2174 _GL_CXXALIAS_SYS (logbl, long double, (long double x));
2175 # endif
2176 _GL_CXXALIASWARN (logbl);
2177 #elif defined GNULIB_POSIXCHECK
2178 # undef logbl
2179 # if HAVE_RAW_DECL_LOGBL
2180 _GL_WARN_ON_USE (logbl, "logbl is unportable - "
2181                  "use gnulib module logbl for portability");
2182 # endif
2183 #endif
2184 
2185 
2186 #if 0
2187 # if 0
2188 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2189 #   undef modff
2190 #   define modff rpl_modff
2191 #  endif
2192 _GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
2193 _GL_CXXALIAS_RPL (modff, float, (float x, float *iptr));
2194 # else
2195 #  if !1
2196 #   undef modff
2197 _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
2198 #  endif
2199 _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
2200 # endif
2201 _GL_CXXALIASWARN (modff);
2202 #elif defined GNULIB_POSIXCHECK
2203 # undef modff
2204 # if HAVE_RAW_DECL_MODFF
2205 _GL_WARN_ON_USE (modff, "modff is unportable - "
2206                  "use gnulib module modff for portability");
2207 # endif
2208 #endif
2209 
2210 #if 0
2211 # if 0
2212 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2213 #   undef modf
2214 #   define modf rpl_modf
2215 #  endif
2216 _GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2)));
2217 _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
2218 # else
2219 _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
2220 # endif
2221 # if __GLIBC__ >= 2
2222 _GL_CXXALIASWARN (modf);
2223 # endif
2224 #elif defined GNULIB_POSIXCHECK
2225 # undef modf
2226 # if HAVE_RAW_DECL_MODF
2227 _GL_WARN_ON_USE (modf, "modf has portability problems - "
2228                  "use gnulib module modf for portability");
2229 # endif
2230 #endif
2231 
2232 #if 0
2233 # if 0
2234 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2235 #   undef modfl
2236 #   define modfl rpl_modfl
2237 #  endif
2238 _GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr)
2239                                       _GL_ARG_NONNULL ((2)));
2240 _GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr));
2241 # else
2242 #  if !1
2243 #   undef modfl
2244 _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
2245                                       _GL_ARG_NONNULL ((2)));
2246 #  endif
2247 _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
2248 # endif
2249 _GL_CXXALIASWARN (modfl);
2250 #elif defined GNULIB_POSIXCHECK
2251 # undef modfl
2252 # if HAVE_RAW_DECL_MODFL
2253 _GL_WARN_ON_USE (modfl, "modfl is unportable - "
2254                  "use gnulib module modfl for portability");
2255 # endif
2256 #endif
2257 
2258 
2259 #if 0
2260 # if !1
2261 #  undef powf
2262 _GL_FUNCDECL_SYS (powf, float, (float x, float y));
2263 # endif
2264 _GL_CXXALIAS_SYS (powf, float, (float x, float y));
2265 _GL_CXXALIASWARN (powf);
2266 #elif defined GNULIB_POSIXCHECK
2267 # undef powf
2268 # if HAVE_RAW_DECL_POWF
2269 _GL_WARN_ON_USE (powf, "powf is unportable - "
2270                  "use gnulib module powf for portability");
2271 # endif
2272 #endif
2273 
2274 
2275 #if 0
2276 # if 0
2277 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2278 #   undef remainderf
2279 #   define remainderf rpl_remainderf
2280 #  endif
2281 _GL_FUNCDECL_RPL (remainderf, float, (float x, float y));
2282 _GL_CXXALIAS_RPL (remainderf, float, (float x, float y));
2283 # else
2284 #  if !1
2285 _GL_FUNCDECL_SYS (remainderf, float, (float x, float y));
2286 #  endif
2287 _GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
2288 # endif
2289 _GL_CXXALIASWARN (remainderf);
2290 #elif defined GNULIB_POSIXCHECK
2291 # undef remainderf
2292 # if HAVE_RAW_DECL_REMAINDERF
2293 _GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
2294                  "use gnulib module remainderf for portability");
2295 # endif
2296 #endif
2297 
2298 #if 0
2299 # if 0
2300 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2301 #   undef remainder
2302 #   define remainder rpl_remainder
2303 #  endif
2304 _GL_FUNCDECL_RPL (remainder, double, (double x, double y));
2305 _GL_CXXALIAS_RPL (remainder, double, (double x, double y));
2306 # else
2307 #  if !1 || !1
2308 _GL_FUNCDECL_SYS (remainder, double, (double x, double y));
2309 #  endif
2310 _GL_CXXALIAS_SYS (remainder, double, (double x, double y));
2311 # endif
2312 # if __GLIBC__ >= 2
2313 _GL_CXXALIASWARN (remainder);
2314 # endif
2315 #elif defined GNULIB_POSIXCHECK
2316 # undef remainder
2317 # if HAVE_RAW_DECL_REMAINDER
2318 _GL_WARN_ON_USE (remainder, "remainder is unportable - "
2319                  "use gnulib module remainder for portability");
2320 # endif
2321 #endif
2322 
2323 #if 0
2324 # if 0
2325 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2326 #   undef remainderl
2327 #   define remainderl rpl_remainderl
2328 #  endif
2329 _GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y));
2330 _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
2331 # else
2332 #  if !1
2333 #   undef remainderl
2334 #   if !(defined __cplusplus && defined _AIX)
2335 _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
2336 #   endif
2337 #  endif
2338 _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
2339 # endif
2340 _GL_CXXALIASWARN (remainderl);
2341 #elif defined GNULIB_POSIXCHECK
2342 # undef remainderl
2343 # if HAVE_RAW_DECL_REMAINDERL
2344 _GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
2345                  "use gnulib module remainderl for portability");
2346 # endif
2347 #endif
2348 
2349 
2350 #if 0
2351 # if !1
2352 _GL_FUNCDECL_SYS (rintf, float, (float x));
2353 # endif
2354 _GL_CXXALIAS_SYS (rintf, float, (float x));
2355 _GL_CXXALIASWARN (rintf);
2356 #elif defined GNULIB_POSIXCHECK
2357 # undef rintf
2358 # if HAVE_RAW_DECL_RINTF
2359 _GL_WARN_ON_USE (rintf, "rintf is unportable - "
2360                  "use gnulib module rintf for portability");
2361 # endif
2362 #endif
2363 
2364 #if 0
2365 # if !1
2366 _GL_FUNCDECL_SYS (rint, double, (double x));
2367 # endif
2368 _GL_CXXALIAS_SYS (rint, double, (double x));
2369 # if __GLIBC__ >= 2
2370 _GL_CXXALIASWARN (rint);
2371 # endif
2372 #elif defined GNULIB_POSIXCHECK
2373 # undef rint
2374 # if HAVE_RAW_DECL_RINT
2375 _GL_WARN_ON_USE (rint, "rint is unportable - "
2376                  "use gnulib module rint for portability");
2377 # endif
2378 #endif
2379 
2380 #if 0
2381 # if 0
2382 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2383 #   undef rintl
2384 #   define rintl rpl_rintl
2385 #  endif
2386 _GL_FUNCDECL_RPL (rintl, long double, (long double x));
2387 _GL_CXXALIAS_RPL (rintl, long double, (long double x));
2388 # else
2389 #  if !1
2390 _GL_FUNCDECL_SYS (rintl, long double, (long double x));
2391 #  endif
2392 _GL_CXXALIAS_SYS (rintl, long double, (long double x));
2393 # endif
2394 _GL_CXXALIASWARN (rintl);
2395 #elif defined GNULIB_POSIXCHECK
2396 # undef rintl
2397 # if HAVE_RAW_DECL_RINTL
2398 _GL_WARN_ON_USE (rintl, "rintl is unportable - "
2399                  "use gnulib module rintl for portability");
2400 # endif
2401 #endif
2402 
2403 
2404 #if 0
2405 # if 0
2406 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2407 #   undef roundf
2408 #   define roundf rpl_roundf
2409 #  endif
2410 _GL_FUNCDECL_RPL (roundf, float, (float x));
2411 _GL_CXXALIAS_RPL (roundf, float, (float x));
2412 # else
2413 #  if !1
2414 _GL_FUNCDECL_SYS (roundf, float, (float x));
2415 #  endif
2416 _GL_CXXALIAS_SYS (roundf, float, (float x));
2417 # endif
2418 _GL_CXXALIASWARN (roundf);
2419 #elif defined GNULIB_POSIXCHECK
2420 # undef roundf
2421 # if HAVE_RAW_DECL_ROUNDF
2422 _GL_WARN_ON_USE (roundf, "roundf is unportable - "
2423                  "use gnulib module roundf for portability");
2424 # endif
2425 #endif
2426 
2427 #if 0
2428 # if 0
2429 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2430 #   undef round
2431 #   define round rpl_round
2432 #  endif
2433 _GL_FUNCDECL_RPL (round, double, (double x));
2434 _GL_CXXALIAS_RPL (round, double, (double x));
2435 # else
2436 #  if !1
2437 _GL_FUNCDECL_SYS (round, double, (double x));
2438 #  endif
2439 _GL_CXXALIAS_SYS (round, double, (double x));
2440 # endif
2441 # if __GLIBC__ >= 2
2442 _GL_CXXALIASWARN (round);
2443 # endif
2444 #elif defined GNULIB_POSIXCHECK
2445 # undef round
2446 # if HAVE_RAW_DECL_ROUND
2447 _GL_WARN_ON_USE (round, "round is unportable - "
2448                  "use gnulib module round for portability");
2449 # endif
2450 #endif
2451 
2452 #if 0
2453 # if 0
2454 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2455 #   undef roundl
2456 #   define roundl rpl_roundl
2457 #  endif
2458 _GL_FUNCDECL_RPL (roundl, long double, (long double x));
2459 _GL_CXXALIAS_RPL (roundl, long double, (long double x));
2460 # else
2461 #  if !1
2462 #   undef roundl
2463 #   if !(defined __cplusplus && defined _AIX)
2464 _GL_FUNCDECL_SYS (roundl, long double, (long double x));
2465 #   endif
2466 #  endif
2467 _GL_CXXALIAS_SYS (roundl, long double, (long double x));
2468 # endif
2469 _GL_CXXALIASWARN (roundl);
2470 #elif defined GNULIB_POSIXCHECK
2471 # undef roundl
2472 # if HAVE_RAW_DECL_ROUNDL
2473 _GL_WARN_ON_USE (roundl, "roundl is unportable - "
2474                  "use gnulib module roundl for portability");
2475 # endif
2476 #endif
2477 
2478 
2479 #if 0
2480 # if 0
2481 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2482 #   undef sinf
2483 #   define sinf rpl_sinf
2484 #  endif
2485 _GL_FUNCDECL_RPL (sinf, float, (float x));
2486 _GL_CXXALIAS_RPL (sinf, float, (float x));
2487 # else
2488 #  if !1
2489  #  undef sinf
2490 _GL_FUNCDECL_SYS (sinf, float, (float x));
2491 #  endif
2492 _GL_CXXALIAS_SYS (sinf, float, (float x));
2493 # endif
2494 _GL_CXXALIASWARN (sinf);
2495 #elif defined GNULIB_POSIXCHECK
2496 # undef sinf
2497 # if HAVE_RAW_DECL_SINF
2498 _GL_WARN_ON_USE (sinf, "sinf is unportable - "
2499                  "use gnulib module sinf for portability");
2500 # endif
2501 #endif
2502 
2503 #if 0
2504 # if !1 || !1
2505 #  undef sinl
2506 _GL_FUNCDECL_SYS (sinl, long double, (long double x));
2507 # endif
2508 _GL_CXXALIAS_SYS (sinl, long double, (long double x));
2509 _GL_CXXALIASWARN (sinl);
2510 #elif defined GNULIB_POSIXCHECK
2511 # undef sinl
2512 # if HAVE_RAW_DECL_SINL
2513 _GL_WARN_ON_USE (sinl, "sinl is unportable - "
2514                  "use gnulib module sinl for portability");
2515 # endif
2516 #endif
2517 
2518 
2519 #if 0
2520 # if 0
2521 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2522 #   undef sinhf
2523 #   define sinhf rpl_sinhf
2524 #  endif
2525 _GL_FUNCDECL_RPL (sinhf, float, (float x));
2526 _GL_CXXALIAS_RPL (sinhf, float, (float x));
2527 # else
2528 #  if !1
2529 #   undef sinhf
2530 _GL_FUNCDECL_SYS (sinhf, float, (float x));
2531 #  endif
2532 _GL_CXXALIAS_SYS (sinhf, float, (float x));
2533 # endif
2534 _GL_CXXALIASWARN (sinhf);
2535 #elif defined GNULIB_POSIXCHECK
2536 # undef sinhf
2537 # if HAVE_RAW_DECL_SINHF
2538 _GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
2539                  "use gnulib module sinhf for portability");
2540 # endif
2541 #endif
2542 
2543 
2544 #if 0
2545 # if 0
2546 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2547 #   undef sqrtf
2548 #   define sqrtf rpl_sqrtf
2549 #  endif
2550 _GL_FUNCDECL_RPL (sqrtf, float, (float x));
2551 _GL_CXXALIAS_RPL (sqrtf, float, (float x));
2552 # else
2553 #  if !1
2554 #   undef sqrtf
2555 _GL_FUNCDECL_SYS (sqrtf, float, (float x));
2556 #  endif
2557 _GL_CXXALIAS_SYS (sqrtf, float, (float x));
2558 # endif
2559 _GL_CXXALIASWARN (sqrtf);
2560 #elif defined GNULIB_POSIXCHECK
2561 # undef sqrtf
2562 # if HAVE_RAW_DECL_SQRTF
2563 _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
2564                  "use gnulib module sqrtf for portability");
2565 # endif
2566 #endif
2567 
2568 #if 0
2569 # if 0
2570 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2571 #   undef sqrtl
2572 #   define sqrtl rpl_sqrtl
2573 #  endif
2574 _GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
2575 _GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
2576 # else
2577 #  if !1 || !1
2578 #   undef sqrtl
2579 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
2580 #  endif
2581 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
2582 # endif
2583 _GL_CXXALIASWARN (sqrtl);
2584 #elif defined GNULIB_POSIXCHECK
2585 # undef sqrtl
2586 # if HAVE_RAW_DECL_SQRTL
2587 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
2588                  "use gnulib module sqrtl for portability");
2589 # endif
2590 #endif
2591 
2592 
2593 #if 0
2594 # if 0
2595 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2596 #   undef tanf
2597 #   define tanf rpl_tanf
2598 #  endif
2599 _GL_FUNCDECL_RPL (tanf, float, (float x));
2600 _GL_CXXALIAS_RPL (tanf, float, (float x));
2601 # else
2602 #  if !1
2603 #   undef tanf
2604 _GL_FUNCDECL_SYS (tanf, float, (float x));
2605 #  endif
2606 _GL_CXXALIAS_SYS (tanf, float, (float x));
2607 # endif
2608 _GL_CXXALIASWARN (tanf);
2609 #elif defined GNULIB_POSIXCHECK
2610 # undef tanf
2611 # if HAVE_RAW_DECL_TANF
2612 _GL_WARN_ON_USE (tanf, "tanf is unportable - "
2613                  "use gnulib module tanf for portability");
2614 # endif
2615 #endif
2616 
2617 #if 0
2618 # if !1 || !1
2619 #  undef tanl
2620 _GL_FUNCDECL_SYS (tanl, long double, (long double x));
2621 # endif
2622 _GL_CXXALIAS_SYS (tanl, long double, (long double x));
2623 _GL_CXXALIASWARN (tanl);
2624 #elif defined GNULIB_POSIXCHECK
2625 # undef tanl
2626 # if HAVE_RAW_DECL_TANL
2627 _GL_WARN_ON_USE (tanl, "tanl is unportable - "
2628                  "use gnulib module tanl for portability");
2629 # endif
2630 #endif
2631 
2632 
2633 #if 0
2634 # if 0
2635 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2636 #   undef tanhf
2637 #   define tanhf rpl_tanhf
2638 #  endif
2639 _GL_FUNCDECL_RPL (tanhf, float, (float x));
2640 _GL_CXXALIAS_RPL (tanhf, float, (float x));
2641 # else
2642 #  if !1
2643 #   undef tanhf
2644 _GL_FUNCDECL_SYS (tanhf, float, (float x));
2645 #  endif
2646 _GL_CXXALIAS_SYS (tanhf, float, (float x));
2647 # endif
2648 _GL_CXXALIASWARN (tanhf);
2649 #elif defined GNULIB_POSIXCHECK
2650 # undef tanhf
2651 # if HAVE_RAW_DECL_TANHF
2652 _GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
2653                  "use gnulib module tanhf for portability");
2654 # endif
2655 #endif
2656 
2657 
2658 #if 0
2659 # if 0
2660 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2661 #   undef truncf
2662 #   define truncf rpl_truncf
2663 #  endif
2664 _GL_FUNCDECL_RPL (truncf, float, (float x));
2665 _GL_CXXALIAS_RPL (truncf, float, (float x));
2666 # else
2667 #  if !1
2668 _GL_FUNCDECL_SYS (truncf, float, (float x));
2669 #  endif
2670 _GL_CXXALIAS_SYS (truncf, float, (float x));
2671 # endif
2672 _GL_CXXALIASWARN (truncf);
2673 #elif defined GNULIB_POSIXCHECK
2674 # undef truncf
2675 # if HAVE_RAW_DECL_TRUNCF
2676 _GL_WARN_ON_USE (truncf, "truncf is unportable - "
2677                  "use gnulib module truncf for portability");
2678 # endif
2679 #endif
2680 
2681 #if 0
2682 # if 0
2683 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2684 #   undef trunc
2685 #   define trunc rpl_trunc
2686 #  endif
2687 _GL_FUNCDECL_RPL (trunc, double, (double x));
2688 _GL_CXXALIAS_RPL (trunc, double, (double x));
2689 # else
2690 #  if !1
2691 _GL_FUNCDECL_SYS (trunc, double, (double x));
2692 #  endif
2693 _GL_CXXALIAS_SYS (trunc, double, (double x));
2694 # endif
2695 # if __GLIBC__ >= 2
2696 _GL_CXXALIASWARN (trunc);
2697 # endif
2698 #elif defined GNULIB_POSIXCHECK
2699 # undef trunc
2700 # if HAVE_RAW_DECL_TRUNC
2701 _GL_WARN_ON_USE (trunc, "trunc is unportable - "
2702                  "use gnulib module trunc for portability");
2703 # endif
2704 #endif
2705 
2706 #if 0
2707 # if 0
2708 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2709 #   undef truncl
2710 #   define truncl rpl_truncl
2711 #  endif
2712 _GL_FUNCDECL_RPL (truncl, long double, (long double x));
2713 _GL_CXXALIAS_RPL (truncl, long double, (long double x));
2714 # else
2715 #  if !1
2716 _GL_FUNCDECL_SYS (truncl, long double, (long double x));
2717 #  endif
2718 _GL_CXXALIAS_SYS (truncl, long double, (long double x));
2719 # endif
2720 _GL_CXXALIASWARN (truncl);
2721 #elif defined GNULIB_POSIXCHECK
2722 # undef truncl
2723 # if HAVE_RAW_DECL_TRUNCL
2724 _GL_WARN_ON_USE (truncl, "truncl is unportable - "
2725                  "use gnulib module truncl for portability");
2726 # endif
2727 #endif
2728 
2729 
2730 /* Definitions of function-like macros come here, after the function
2731    declarations.  */
2732 
2733 
2734 #if 0
2735 # if 0
2736 _GL_EXTERN_C int gl_isfinitef (float x);
2737 _GL_EXTERN_C int gl_isfinited (double x);
2738 _GL_EXTERN_C int gl_isfinitel (long double x);
2739 #  undef isfinite
2740 #  define isfinite(x) \
2741    (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
2742     sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
2743     gl_isfinitef (x))
2744 # endif
2745 # ifdef __cplusplus
2746 #  if defined isfinite || defined GNULIB_NAMESPACE
2747 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
2748 #   undef isfinite
2749 #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined _AIX))
2750   /* This platform's <cmath> possibly defines isfinite through a set of inline
2751      functions.  */
2752 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool)
2753 #    define isfinite rpl_isfinite
2754 #   else
2755 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool)
2756 #   endif
2757 #  endif
2758 # endif
2759 #elif defined GNULIB_POSIXCHECK
2760 # if defined isfinite
2761 _GL_WARN_REAL_FLOATING_DECL (isfinite);
2762 #  undef isfinite
2763 #  define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
2764 # endif
2765 #endif
2766 
2767 
2768 #if 0
2769 # if 0
2770 _GL_EXTERN_C int gl_isinff (float x);
2771 _GL_EXTERN_C int gl_isinfd (double x);
2772 _GL_EXTERN_C int gl_isinfl (long double x);
2773 #  undef isinf
2774 #  define isinf(x) \
2775    (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
2776     sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
2777     gl_isinff (x))
2778 # endif
2779 # ifdef __cplusplus
2780 #  if defined isinf || defined GNULIB_NAMESPACE
2781 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
2782 #   undef isinf
2783 #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__))
2784   /* This platform's <cmath> possibly defines isinf through a set of inline
2785      functions.  */
2786 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, rpl_isinf, bool)
2787 #    define isinf rpl_isinf
2788 #   else
2789 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool)
2790 #   endif
2791 #  endif
2792 # endif
2793 #elif defined GNULIB_POSIXCHECK
2794 # if defined isinf
2795 _GL_WARN_REAL_FLOATING_DECL (isinf);
2796 #  undef isinf
2797 #  define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
2798 # endif
2799 #endif
2800 
2801 
2802 #if 0
2803 /* Test for NaN for 'float' numbers.  */
2804 # if 1
2805 /* The original <math.h> included above provides a declaration of isnan macro
2806    or (older) isnanf function.  */
2807 #  if __GNUC__ >= 4 && (!defined __clang__ || __has_builtin (__builtin_isnanf))
2808     /* GCC 4.0 and newer provides three built-ins for isnan.  */
2809 #   undef isnanf
2810 #   define isnanf(x) __builtin_isnanf ((float)(x))
2811 #  elif defined isnan
2812 #   undef isnanf
2813 #   define isnanf(x) isnan ((float)(x))
2814 #  endif
2815 # else
2816 /* Test whether X is a NaN.  */
2817 #  undef isnanf
2818 #  define isnanf rpl_isnanf
2819 _GL_EXTERN_C int isnanf (float x);
2820 # endif
2821 #endif
2822 
2823 #if 0
2824 /* Test for NaN for 'double' numbers.
2825    This function is a gnulib extension, unlike isnan() which applied only
2826    to 'double' numbers earlier but now is a type-generic macro.  */
2827 # if 1
2828 /* The original <math.h> included above provides a declaration of isnan
2829    macro.  */
2830 #  if __GNUC__ >= 4
2831     /* GCC 4.0 and newer provides three built-ins for isnan.  */
2832 #   undef isnand
2833 #   define isnand(x) __builtin_isnan ((double)(x))
2834 #  else
2835 #   undef isnand
2836 #   define isnand(x) isnan ((double)(x))
2837 #  endif
2838 # else
2839 /* Test whether X is a NaN.  */
2840 #  undef isnand
2841 #  define isnand rpl_isnand
2842 _GL_EXTERN_C int isnand (double x);
2843 # endif
2844 #endif
2845 
2846 #if 0
2847 /* Test for NaN for 'long double' numbers.  */
2848 # if 1
2849 /* The original <math.h> included above provides a declaration of isnan
2850    macro or (older) isnanl function.  */
2851 #  if __GNUC__ >= 4 && (!defined __clang__ || __has_builtin (__builtin_isnanl))
2852     /* GCC 4.0 and newer provides three built-ins for isnan.  */
2853 #   undef isnanl
2854 #   define isnanl(x) __builtin_isnanl ((long double)(x))
2855 #  elif defined isnan
2856 #   undef isnanl
2857 #   define isnanl(x) isnan ((long double)(x))
2858 #  endif
2859 # else
2860 /* Test whether X is a NaN.  */
2861 #  undef isnanl
2862 #  define isnanl rpl_isnanl
2863 _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
2864 # endif
2865 #endif
2866 
2867 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL!  */
2868 #if 0
2869 # if 0
2870 /* We can't just use the isnanf macro (e.g.) as exposed by
2871    isnanf.h (e.g.) here, because those may end up being macros
2872    that recursively expand back to isnan.  So use the gnulib
2873    replacements for them directly. */
2874 #  if 1 && __GNUC__ >= 4 && (!defined __clang__ || __has_builtin (__builtin_isnanf))
2875 #   define gl_isnan_f(x) __builtin_isnanf ((float)(x))
2876 #  else
2877 _GL_EXTERN_C int rpl_isnanf (float x);
2878 #   define gl_isnan_f(x) rpl_isnanf (x)
2879 #  endif
2880 #  if 1 && __GNUC__ >= 4
2881 #   define gl_isnan_d(x) __builtin_isnan ((double)(x))
2882 #  else
2883 _GL_EXTERN_C int rpl_isnand (double x);
2884 #   define gl_isnan_d(x) rpl_isnand (x)
2885 #  endif
2886 #  if 1 && __GNUC__ >= 4 && (!defined __clang__ || __has_builtin (__builtin_isnanl))
2887 #   define gl_isnan_l(x) __builtin_isnanl ((long double)(x))
2888 #  else
2889 _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
2890 #   define gl_isnan_l(x) rpl_isnanl (x)
2891 #  endif
2892 #  undef isnan
2893 #  define isnan(x) \
2894    (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
2895     sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
2896     gl_isnan_f (x))
2897 # elif __GNUC__ >= 4 && (!defined __clang__ || (__has_builtin (__builtin_isnanf) && __has_builtin (__builtin_isnanl)))
2898 #  undef isnan
2899 #  define isnan(x) \
2900    (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \
2901     sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
2902     __builtin_isnanf ((float)(x)))
2903 # endif
2904 # ifdef __cplusplus
2905 #  if defined isnan || defined GNULIB_NAMESPACE
2906 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
2907 #   undef isnan
2908 #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__))
2909   /* This platform's <cmath> possibly defines isnan through a set of inline
2910      functions.  */
2911 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, rpl_isnan, bool)
2912 #    define isnan rpl_isnan
2913 #   else
2914 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool)
2915 #   endif
2916 #  endif
2917 # else
2918 /* Ensure isnan is a macro.  */
2919 #  ifndef isnan
2920 #   define isnan isnan
2921 #  endif
2922 # endif
2923 #elif defined GNULIB_POSIXCHECK
2924 # if defined isnan
2925 _GL_WARN_REAL_FLOATING_DECL (isnan);
2926 #  undef isnan
2927 #  define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
2928 # endif
2929 #endif
2930 
2931 
2932 #if 0
2933 # if (0 \
2934       && (!defined __cplusplus || __cplusplus < 201103))
2935 #  undef signbit
2936    /* GCC 4.0 and newer provides three built-ins for signbit.  */
2937 #  define signbit(x) \
2938    (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
2939     sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
2940     __builtin_signbitf (x))
2941 # endif
2942 # if 0 && !GNULIB_defined_signbit
2943 #  undef signbit
2944 _GL_EXTERN_C int gl_signbitf (float arg);
2945 _GL_EXTERN_C int gl_signbitd (double arg);
2946 _GL_EXTERN_C int gl_signbitl (long double arg);
2947 #  if __GNUC__ >= 2 && !defined __STRICT_ANSI__
2948 #   define _GL_NUM_UINT_WORDS(type) \
2949       ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
2950 #   if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
2951 #    define gl_signbitf_OPTIMIZED_MACRO
2952 #    define gl_signbitf(arg) \
2953        ({ union { float _value;                                         \
2954                   unsigned int _word[_GL_NUM_UINT_WORDS (float)];       \
2955                 } _m;                                                   \
2956           _m._value = (arg);                                            \
2957           (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1;          \
2958         })
2959 #   endif
2960 #   if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
2961 #    define gl_signbitd_OPTIMIZED_MACRO
2962 #    define gl_signbitd(arg) \
2963        ({ union { double _value;                                        \
2964                   unsigned int _word[_GL_NUM_UINT_WORDS (double)];      \
2965                 } _m;                                                   \
2966           _m._value = (arg);                                            \
2967           (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1;          \
2968         })
2969 #   endif
2970 #   if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
2971 #    define gl_signbitl_OPTIMIZED_MACRO
2972 #    define gl_signbitl(arg) \
2973        ({ union { long double _value;                                   \
2974                   unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
2975                 } _m;                                                   \
2976           _m._value = (arg);                                            \
2977           (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;        \
2978         })
2979 #   endif
2980 #  endif
2981 #  define signbit(x) \
2982    (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
2983     sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
2984     gl_signbitf (x))
2985 #  define GNULIB_defined_signbit 1
2986 # endif
2987 # ifdef __cplusplus
2988 #  if defined signbit || defined GNULIB_NAMESPACE
2989 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
2990 #   undef signbit
2991 #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined _AIX))
2992   /* This platform's <cmath> possibly defines signbit through a set of inline
2993      functions.  */
2994 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, rpl_signbit, bool)
2995 #    define signbit rpl_signbit
2996 #   else
2997 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, signbit, bool)
2998 #   endif
2999 #  endif
3000 # endif
3001 #elif defined GNULIB_POSIXCHECK
3002 # if defined signbit
3003 _GL_WARN_REAL_FLOATING_DECL (signbit);
3004 #  undef signbit
3005 #  define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
3006 # endif
3007 #endif
3008 
3009 _GL_INLINE_HEADER_END
3010 
3011 #endif /* _GL_MATH_H */
3012 #endif /* _GL_MATH_H */
3013