1 /* -mlong-double-64 compatibility mode for <wchar.h> functions.
2    Copyright (C) 2006-2022 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4 
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 as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9 
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.
14 
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/>.  */
18 
19 #ifndef _WCHAR_H
20 # error "Never include <bits/wchar-ldbl.h> directly; use <wchar.h> instead."
21 #endif
22 
23 #if defined __USE_ISOC95 || defined __USE_UNIX98
24 __LDBL_REDIR_DECL (fwprintf);
25 __LDBL_REDIR_DECL (wprintf);
26 __LDBL_REDIR_DECL (swprintf);
27 __LDBL_REDIR_DECL (vfwprintf);
28 __LDBL_REDIR_DECL (vwprintf);
29 __LDBL_REDIR_DECL (vswprintf);
30 # if !__GLIBC_USE (DEPRECATED_SCANF)
31 #  if defined __LDBL_COMPAT
32 __LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc99_fwscanf)
33 __LDBL_REDIR1_DECL (wscanf, __nldbl___isoc99_wscanf)
34 __LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf)
35 #  elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
36 __LDBL_REDIR1_DECL (fwscanf, __isoc99_fwscanfieee128)
37 __LDBL_REDIR1_DECL (wscanf, __isoc99_wscanfieee128)
38 __LDBL_REDIR1_DECL (swscanf, __isoc99_swscanfieee128)
39 #  else
40 #   error bits/stdlib-ldbl.h included when no ldbl redirections are required.
41 #  endif
42 # else
43 __LDBL_REDIR_DECL (fwscanf);
44 __LDBL_REDIR_DECL (wscanf);
45 __LDBL_REDIR_DECL (swscanf);
46 # endif
47 #endif
48 
49 #ifdef __USE_ISOC99
50 # ifdef __LDBL_COMPAT
51 __LDBL_REDIR1_DECL (wcstold, wcstod);
52 # else
53 __LDBL_REDIR1_DECL (wcstold, __wcstoieee128)
54 # endif
55 # if !__GLIBC_USE (DEPRECATED_SCANF)
56 #  if defined __LDBL_COMPAT
57 __LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc99_vfwscanf)
58 __LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc99_vwscanf)
59 __LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf)
60 #  elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
61 __LDBL_REDIR1_DECL (vfwscanf, __isoc99_vfwscanfieee128)
62 __LDBL_REDIR1_DECL (vwscanf, __isoc99_vwscanfieee128)
63 __LDBL_REDIR1_DECL (vswscanf, __isoc99_vswscanfieee128)
64 #  else
65 #   error bits/stdlib-ldbl.h included when no ldbl redirections are required.
66 #  endif
67 # else
68 __LDBL_REDIR_DECL (vfwscanf);
69 __LDBL_REDIR_DECL (vwscanf);
70 __LDBL_REDIR_DECL (vswscanf);
71 # endif
72 #endif
73 
74 #ifdef __USE_GNU
75 # ifdef __LDBL_COMPAT
76 __LDBL_REDIR1_DECL (wcstold_l, wcstod_l);
77 # else
78 __LDBL_REDIR1_DECL (wcstold_l, __wcstoieee128_l)
79 # endif
80 #endif
81 
82 #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
83 __LDBL_REDIR2_DECL (swprintf_chk)
84 __LDBL_REDIR2_DECL (vswprintf_chk)
85 # if __USE_FORTIFY_LEVEL > 1
86 __LDBL_REDIR2_DECL (fwprintf_chk)
87 __LDBL_REDIR2_DECL (wprintf_chk)
88 __LDBL_REDIR2_DECL (vfwprintf_chk)
89 __LDBL_REDIR2_DECL (vwprintf_chk)
90 # endif
91 #endif
92