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