Fix stringop-overflow warning in test-strncat.
[glibc.git] / bits / long-double.h
blob74edf3b08917e784b763df59faf6a4bf45f826c4
1 /* Properties of long double type.
2 Copyright (C) 2016-2023 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
19 /* This header is included by <sys/cdefs.h>.
21 If long double is ABI-compatible with double, it should define
22 __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
23 __NO_LONG_DOUBLE_MATH undefined.
25 If this build of the GNU C Library supports both long double
26 ABI-compatible with double and some other long double format not
27 ABI-compatible with double, it should define
28 __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
29 __LONG_DOUBLE_MATH_OPTIONAL undefined.
31 If __NO_LONG_DOUBLE_MATH is already defined, this header must not
32 define anything; this is needed to work with the definition of
33 __NO_LONG_DOUBLE_MATH in nldbl-compat.h. */
35 /* In the default version of this header, long double is
36 ABI-compatible with double. */
37 #ifndef __NO_LONG_DOUBLE_MATH
38 # define __NO_LONG_DOUBLE_MATH 1
39 #endif
41 /* The macro __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI is used to determine the
42 choice of the underlying ABI of long double. It will always assume
43 a constant value for each translation unit.
45 If the value is non-zero, any API which is parameterized by the long
46 double type (i.e the scanf/printf family of functions or the explicitly
47 parameterized math.h functions) will be redirected to a compatible
48 implementation using _Float128 ABI via symbols suffixed with ieee128.
50 The mechanism this macro uses to acquire may be a function
51 of architecture, or target specific options used to invoke the
52 compiler. */
53 #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0