1 /* Checking macros for wchar functions. Declarations only.
2 Copyright (C) 2004-2024 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 as 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 #ifndef _BITS_WCHAR2_DECL_H
20 #define _BITS_WCHAR2_DECL_H 1
23 # error "Never include <bits/wchar2-decl.h> directly; use <wchar.h> instead."
27 extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1
,
28 const wchar_t *__restrict __s2
, size_t __n
,
29 size_t __ns1
) __THROW
;
30 extern wchar_t *__REDIRECT_NTH (__wmemcpy_alias
,
31 (wchar_t *__restrict __s1
,
32 const wchar_t *__restrict __s2
, size_t __n
),
34 extern wchar_t *__REDIRECT_NTH (__wmemcpy_chk_warn
,
35 (wchar_t *__restrict __s1
,
36 const wchar_t *__restrict __s2
, size_t __n
,
37 size_t __ns1
), __wmemcpy_chk
)
38 __warnattr ("wmemcpy called with length bigger than size of destination "
41 extern wchar_t *__wmemmove_chk (wchar_t *__s1
, const wchar_t *__s2
,
42 size_t __n
, size_t __ns1
) __THROW
;
43 extern wchar_t *__REDIRECT_NTH (__wmemmove_alias
, (wchar_t *__s1
,
45 size_t __n
), wmemmove
);
46 extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn
,
47 (wchar_t *__s1
, const wchar_t *__s2
,
48 size_t __n
, size_t __ns1
), __wmemmove_chk
)
49 __warnattr ("wmemmove called with length bigger than size of destination "
55 extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1
,
56 const wchar_t *__restrict __s2
, size_t __n
,
57 size_t __ns1
) __THROW
;
58 extern wchar_t *__REDIRECT_NTH (__wmempcpy_alias
,
59 (wchar_t *__restrict __s1
,
60 const wchar_t *__restrict __s2
,
61 size_t __n
), wmempcpy
);
62 extern wchar_t *__REDIRECT_NTH (__wmempcpy_chk_warn
,
63 (wchar_t *__restrict __s1
,
64 const wchar_t *__restrict __s2
, size_t __n
,
65 size_t __ns1
), __wmempcpy_chk
)
66 __warnattr ("wmempcpy called with length bigger than size of destination "
72 extern wchar_t *__wmemset_chk (wchar_t *__s
, wchar_t __c
, size_t __n
,
74 extern wchar_t *__REDIRECT_FORTIFY_NTH (__wmemset_alias
, (wchar_t *__s
, wchar_t __c
,
75 size_t __n
), wmemset
);
76 extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn
,
77 (wchar_t *__s
, wchar_t __c
, size_t __n
,
78 size_t __ns
), __wmemset_chk
)
79 __warnattr ("wmemset called with length bigger than size of destination "
82 extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest
,
83 const wchar_t *__restrict __src
,
85 extern wchar_t *__REDIRECT_NTH (__wcscpy_alias
,
86 (wchar_t *__restrict __dest
,
87 const wchar_t *__restrict __src
), wcscpy
);
89 extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest
,
90 const wchar_t *__restrict __src
,
91 size_t __destlen
) __THROW
;
92 extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias
,
93 (wchar_t *__restrict __dest
,
94 const wchar_t *__restrict __src
), wcpcpy
);
96 extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest
,
97 const wchar_t *__restrict __src
, size_t __n
,
98 size_t __destlen
) __THROW
;
99 extern wchar_t *__REDIRECT_NTH (__wcsncpy_alias
,
100 (wchar_t *__restrict __dest
,
101 const wchar_t *__restrict __src
,
102 size_t __n
), wcsncpy
);
103 extern wchar_t *__REDIRECT_NTH (__wcsncpy_chk_warn
,
104 (wchar_t *__restrict __dest
,
105 const wchar_t *__restrict __src
,
106 size_t __n
, size_t __destlen
), __wcsncpy_chk
)
107 __warnattr ("wcsncpy called with length bigger than size of destination "
110 extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest
,
111 const wchar_t *__restrict __src
, size_t __n
,
112 size_t __destlen
) __THROW
;
114 extern wchar_t *__REDIRECT_NTH (__wcpncpy_alias
,
115 (wchar_t *__restrict __dest
,
116 const wchar_t *__restrict __src
,
117 size_t __n
), wcpncpy
);
118 extern wchar_t *__REDIRECT_NTH (__wcpncpy_chk_warn
,
119 (wchar_t *__restrict __dest
,
120 const wchar_t *__restrict __src
,
121 size_t __n
, size_t __destlen
), __wcpncpy_chk
)
122 __warnattr ("wcpncpy called with length bigger than size of destination "
125 extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest
,
126 const wchar_t *__restrict __src
,
127 size_t __destlen
) __THROW
;
128 extern wchar_t *__REDIRECT_NTH (__wcscat_alias
,
129 (wchar_t *__restrict __dest
,
130 const wchar_t *__restrict __src
), wcscat
);
132 extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest
,
133 const wchar_t *__restrict __src
,
134 size_t __n
, size_t __destlen
) __THROW
;
135 extern wchar_t *__REDIRECT_NTH (__wcsncat_alias
,
136 (wchar_t *__restrict __dest
,
137 const wchar_t *__restrict __src
,
138 size_t __n
), wcsncat
);
140 extern int __swprintf_chk (wchar_t *__restrict __s
, size_t __n
,
141 int __flag
, size_t __s_len
,
142 const wchar_t *__restrict __format
, ...)
143 __THROW
/* __attribute__ ((__format__ (__wprintf__, 5, 6))) */;
144 extern int __REDIRECT_NTH_LDBL (__swprintf_alias
,
145 (wchar_t *__restrict __s
, size_t __n
,
146 const wchar_t *__restrict __fmt
, ...),
149 extern int __vswprintf_chk (wchar_t *__restrict __s
, size_t __n
,
150 int __flag
, size_t __s_len
,
151 const wchar_t *__restrict __format
,
152 __gnuc_va_list __arg
)
153 __THROW
/* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
154 extern int __REDIRECT_NTH_LDBL (__vswprintf_alias
,
155 (wchar_t *__restrict __s
, size_t __n
,
156 const wchar_t *__restrict __fmt
,
157 __gnuc_va_list __ap
), vswprintf
);
160 #if __USE_FORTIFY_LEVEL > 1
162 extern int __fwprintf_chk (__FILE
*__restrict __stream
, int __flag
,
163 const wchar_t *__restrict __format
, ...);
164 extern int __wprintf_chk (int __flag
, const wchar_t *__restrict __format
,
166 extern int __vfwprintf_chk (__FILE
*__restrict __stream
, int __flag
,
167 const wchar_t *__restrict __format
,
168 __gnuc_va_list __ap
);
169 extern int __vwprintf_chk (int __flag
, const wchar_t *__restrict __format
,
170 __gnuc_va_list __ap
);
174 extern wchar_t *__fgetws_chk (wchar_t *__restrict __s
, size_t __size
, int __n
,
175 __FILE
*__restrict __stream
) __wur
;
176 extern wchar_t *__REDIRECT (__fgetws_alias
,
177 (wchar_t *__restrict __s
, int __n
,
178 __FILE
*__restrict __stream
), fgetws
) __wur
;
179 extern wchar_t *__REDIRECT (__fgetws_chk_warn
,
180 (wchar_t *__restrict __s
, size_t __size
, int __n
,
181 __FILE
*__restrict __stream
), __fgetws_chk
)
182 __wur
__warnattr ("fgetws called with bigger size than length "
183 "of destination buffer");
187 extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s
, size_t __size
,
188 int __n
, __FILE
*__restrict __stream
)
190 extern wchar_t *__REDIRECT (__fgetws_unlocked_alias
,
191 (wchar_t *__restrict __s
, int __n
,
192 __FILE
*__restrict __stream
), fgetws_unlocked
)
194 extern wchar_t *__REDIRECT (__fgetws_unlocked_chk_warn
,
195 (wchar_t *__restrict __s
, size_t __size
, int __n
,
196 __FILE
*__restrict __stream
),
197 __fgetws_unlocked_chk
)
198 __wur
__warnattr ("fgetws_unlocked called with bigger size than length "
199 "of destination buffer");
203 extern size_t __wcrtomb_chk (char *__restrict __s
, wchar_t __wchar
,
204 mbstate_t *__restrict __p
,
205 size_t __buflen
) __THROW __wur
;
206 extern size_t __REDIRECT_FORTIFY_NTH (__wcrtomb_alias
,
207 (char *__restrict __s
, wchar_t __wchar
,
208 mbstate_t *__restrict __ps
), wcrtomb
) __wur
;
210 extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst
,
211 const char **__restrict __src
,
212 size_t __len
, mbstate_t *__restrict __ps
,
213 size_t __dstlen
) __THROW
;
214 extern size_t __REDIRECT_NTH (__mbsrtowcs_alias
,
215 (wchar_t *__restrict __dst
,
216 const char **__restrict __src
,
217 size_t __len
, mbstate_t *__restrict __ps
),
219 extern size_t __REDIRECT_NTH (__mbsrtowcs_chk_warn
,
220 (wchar_t *__restrict __dst
,
221 const char **__restrict __src
,
222 size_t __len
, mbstate_t *__restrict __ps
,
223 size_t __dstlen
), __mbsrtowcs_chk
)
224 __warnattr ("mbsrtowcs called with dst buffer smaller than len "
225 "* sizeof (wchar_t)");
227 extern size_t __wcsrtombs_chk (char *__restrict __dst
,
228 const wchar_t **__restrict __src
,
229 size_t __len
, mbstate_t *__restrict __ps
,
230 size_t __dstlen
) __THROW
;
231 extern size_t __REDIRECT_NTH (__wcsrtombs_alias
,
232 (char *__restrict __dst
,
233 const wchar_t **__restrict __src
,
234 size_t __len
, mbstate_t *__restrict __ps
),
236 extern size_t __REDIRECT_NTH (__wcsrtombs_chk_warn
,
237 (char *__restrict __dst
,
238 const wchar_t **__restrict __src
,
239 size_t __len
, mbstate_t *__restrict __ps
,
240 size_t __dstlen
), __wcsrtombs_chk
)
241 __warnattr ("wcsrtombs called with dst buffer smaller than len");
243 #ifdef __USE_XOPEN2K8
245 extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst
,
246 const char **__restrict __src
, size_t __nmc
,
247 size_t __len
, mbstate_t *__restrict __ps
,
248 size_t __dstlen
) __THROW
;
249 extern size_t __REDIRECT_NTH (__mbsnrtowcs_alias
,
250 (wchar_t *__restrict __dst
,
251 const char **__restrict __src
, size_t __nmc
,
252 size_t __len
, mbstate_t *__restrict __ps
),
254 extern size_t __REDIRECT_NTH (__mbsnrtowcs_chk_warn
,
255 (wchar_t *__restrict __dst
,
256 const char **__restrict __src
, size_t __nmc
,
257 size_t __len
, mbstate_t *__restrict __ps
,
258 size_t __dstlen
), __mbsnrtowcs_chk
)
259 __warnattr ("mbsnrtowcs called with dst buffer smaller than len "
260 "* sizeof (wchar_t)");
262 extern size_t __wcsnrtombs_chk (char *__restrict __dst
,
263 const wchar_t **__restrict __src
,
264 size_t __nwc
, size_t __len
,
265 mbstate_t *__restrict __ps
, size_t __dstlen
)
267 extern size_t __REDIRECT_NTH (__wcsnrtombs_alias
,
268 (char *__restrict __dst
,
269 const wchar_t **__restrict __src
,
270 size_t __nwc
, size_t __len
,
271 mbstate_t *__restrict __ps
), wcsnrtombs
);
272 extern size_t __REDIRECT_NTH (__wcsnrtombs_chk_warn
,
273 (char *__restrict __dst
,
274 const wchar_t **__restrict __src
,
275 size_t __nwc
, size_t __len
,
276 mbstate_t *__restrict __ps
,
277 size_t __dstlen
), __wcsnrtombs_chk
)
278 __warnattr ("wcsnrtombs called with dst buffer smaller than len");
283 extern size_t __wcslcpy_chk (wchar_t *__dest
, const wchar_t *__src
, size_t __n
,
284 size_t __destlen
) __THROW
;
285 extern size_t __REDIRECT_NTH (__wcslcpy_alias
,
286 (wchar_t *__dest
, const wchar_t *__src
,
287 size_t __n
), wcslcpy
);
289 extern size_t __wcslcat_chk (wchar_t *__dest
, const wchar_t *__src
, size_t __n
,
290 size_t __destlen
) __THROW
;
291 extern size_t __REDIRECT_NTH (__wcslcat_alias
,
292 (wchar_t *__dest
, const wchar_t *__src
,
293 size_t __n
), wcslcat
);
294 #endif /* __USE_MISC */
296 #endif /* bits/wchar2-decl.h. */