wchar2-decl.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. /* Checking macros for wchar functions. Declarations only.
  2. Copyright (C) 2004-2026 Free Software Foundation, Inc.
  3. This file is part of the GNU C Library.
  4. The GNU C Library is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU Lesser General Public
  6. License as published by the Free Software Foundation; either
  7. version 2.1 of the License, or (at your option) any later version.
  8. The GNU C Library is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. Lesser General Public License for more details.
  12. You should have received a copy of the GNU Lesser General Public
  13. License along with the GNU C Library; if not, see
  14. <https://www.gnu.org/licenses/>. */
  15. #ifndef _BITS_WCHAR2_DECL_H
  16. #define _BITS_WCHAR2_DECL_H 1
  17. #ifndef _WCHAR_H
  18. # error "Never include <bits/wchar2-decl.h> directly; use <wchar.h> instead."
  19. #endif
  20. extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1,
  21. const wchar_t *__restrict __s2, size_t __n,
  22. size_t __ns1) __THROW;
  23. extern wchar_t *__REDIRECT_NTH (__wmemcpy_alias,
  24. (wchar_t *__restrict __s1,
  25. const wchar_t *__restrict __s2, size_t __n),
  26. wmemcpy);
  27. extern wchar_t *__REDIRECT_NTH (__wmemcpy_chk_warn,
  28. (wchar_t *__restrict __s1,
  29. const wchar_t *__restrict __s2, size_t __n,
  30. size_t __ns1), __wmemcpy_chk)
  31. __warnattr ("wmemcpy called with length bigger than size of destination "
  32. "buffer");
  33. extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2,
  34. size_t __n, size_t __ns1) __THROW;
  35. extern wchar_t *__REDIRECT_NTH (__wmemmove_alias, (wchar_t *__s1,
  36. const wchar_t *__s2,
  37. size_t __n), wmemmove);
  38. extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
  39. (wchar_t *__s1, const wchar_t *__s2,
  40. size_t __n, size_t __ns1), __wmemmove_chk)
  41. __warnattr ("wmemmove called with length bigger than size of destination "
  42. "buffer");
  43. #ifdef __USE_GNU
  44. extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1,
  45. const wchar_t *__restrict __s2, size_t __n,
  46. size_t __ns1) __THROW;
  47. extern wchar_t *__REDIRECT_NTH (__wmempcpy_alias,
  48. (wchar_t *__restrict __s1,
  49. const wchar_t *__restrict __s2,
  50. size_t __n), wmempcpy);
  51. extern wchar_t *__REDIRECT_NTH (__wmempcpy_chk_warn,
  52. (wchar_t *__restrict __s1,
  53. const wchar_t *__restrict __s2, size_t __n,
  54. size_t __ns1), __wmempcpy_chk)
  55. __warnattr ("wmempcpy called with length bigger than size of destination "
  56. "buffer");
  57. #endif
  58. extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n,
  59. size_t __ns) __THROW;
  60. extern wchar_t *__REDIRECT_FORTIFY_NTH (__wmemset_alias, (wchar_t *__s, wchar_t __c,
  61. size_t __n), wmemset);
  62. extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn,
  63. (wchar_t *__s, wchar_t __c, size_t __n,
  64. size_t __ns), __wmemset_chk)
  65. __warnattr ("wmemset called with length bigger than size of destination "
  66. "buffer");
  67. extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest,
  68. const wchar_t *__restrict __src,
  69. size_t __n) __THROW;
  70. extern wchar_t *__REDIRECT_NTH (__wcscpy_alias,
  71. (wchar_t *__restrict __dest,
  72. const wchar_t *__restrict __src), wcscpy);
  73. extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest,
  74. const wchar_t *__restrict __src,
  75. size_t __destlen) __THROW;
  76. extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
  77. (wchar_t *__restrict __dest,
  78. const wchar_t *__restrict __src), wcpcpy);
  79. extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest,
  80. const wchar_t *__restrict __src, size_t __n,
  81. size_t __destlen) __THROW;
  82. extern wchar_t *__REDIRECT_NTH (__wcsncpy_alias,
  83. (wchar_t *__restrict __dest,
  84. const wchar_t *__restrict __src,
  85. size_t __n), wcsncpy);
  86. extern wchar_t *__REDIRECT_NTH (__wcsncpy_chk_warn,
  87. (wchar_t *__restrict __dest,
  88. const wchar_t *__restrict __src,
  89. size_t __n, size_t __destlen), __wcsncpy_chk)
  90. __warnattr ("wcsncpy called with length bigger than size of destination "
  91. "buffer");
  92. extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest,
  93. const wchar_t *__restrict __src, size_t __n,
  94. size_t __destlen) __THROW;
  95. extern wchar_t *__REDIRECT_NTH (__wcpncpy_alias,
  96. (wchar_t *__restrict __dest,
  97. const wchar_t *__restrict __src,
  98. size_t __n), wcpncpy);
  99. extern wchar_t *__REDIRECT_NTH (__wcpncpy_chk_warn,
  100. (wchar_t *__restrict __dest,
  101. const wchar_t *__restrict __src,
  102. size_t __n, size_t __destlen), __wcpncpy_chk)
  103. __warnattr ("wcpncpy called with length bigger than size of destination "
  104. "buffer");
  105. extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest,
  106. const wchar_t *__restrict __src,
  107. size_t __destlen) __THROW;
  108. extern wchar_t *__REDIRECT_NTH (__wcscat_alias,
  109. (wchar_t *__restrict __dest,
  110. const wchar_t *__restrict __src), wcscat);
  111. extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest,
  112. const wchar_t *__restrict __src,
  113. size_t __n, size_t __destlen) __THROW;
  114. extern wchar_t *__REDIRECT_NTH (__wcsncat_alias,
  115. (wchar_t *__restrict __dest,
  116. const wchar_t *__restrict __src,
  117. size_t __n), wcsncat);
  118. extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n,
  119. int __flag, size_t __s_len,
  120. const wchar_t *__restrict __format, ...)
  121. __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 6))) */;
  122. extern int __REDIRECT_NTH_LDBL (__swprintf_alias,
  123. (wchar_t *__restrict __s, size_t __n,
  124. const wchar_t *__restrict __fmt, ...),
  125. swprintf);
  126. extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
  127. int __flag, size_t __s_len,
  128. const wchar_t *__restrict __format,
  129. __gnuc_va_list __arg)
  130. __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
  131. extern int __REDIRECT_NTH_LDBL (__vswprintf_alias,
  132. (wchar_t *__restrict __s, size_t __n,
  133. const wchar_t *__restrict __fmt,
  134. __gnuc_va_list __ap), vswprintf);
  135. #if __USE_FORTIFY_LEVEL > 1
  136. extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag,
  137. const wchar_t *__restrict __format, ...);
  138. extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format,
  139. ...);
  140. extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag,
  141. const wchar_t *__restrict __format,
  142. __gnuc_va_list __ap);
  143. extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format,
  144. __gnuc_va_list __ap);
  145. #endif
  146. extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n,
  147. __FILE *__restrict __stream) __wur;
  148. extern wchar_t *__REDIRECT (__fgetws_alias,
  149. (wchar_t *__restrict __s, int __n,
  150. __FILE *__restrict __stream), fgetws) __wur;
  151. extern wchar_t *__REDIRECT (__fgetws_chk_warn,
  152. (wchar_t *__restrict __s, size_t __size, int __n,
  153. __FILE *__restrict __stream), __fgetws_chk)
  154. __wur __warnattr ("fgetws called with bigger size than length "
  155. "of destination buffer");
  156. #ifdef __USE_GNU
  157. extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size,
  158. int __n, __FILE *__restrict __stream)
  159. __wur;
  160. extern wchar_t *__REDIRECT (__fgetws_unlocked_alias,
  161. (wchar_t *__restrict __s, int __n,
  162. __FILE *__restrict __stream), fgetws_unlocked)
  163. __wur;
  164. extern wchar_t *__REDIRECT (__fgetws_unlocked_chk_warn,
  165. (wchar_t *__restrict __s, size_t __size, int __n,
  166. __FILE *__restrict __stream),
  167. __fgetws_unlocked_chk)
  168. __wur __warnattr ("fgetws_unlocked called with bigger size than length "
  169. "of destination buffer");
  170. #endif
  171. extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar,
  172. mbstate_t *__restrict __p,
  173. size_t __buflen) __THROW __wur;
  174. extern size_t __REDIRECT_FORTIFY_NTH (__wcrtomb_alias,
  175. (char *__restrict __s, wchar_t __wchar,
  176. mbstate_t *__restrict __ps), wcrtomb) __wur;
  177. extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst,
  178. const char **__restrict __src,
  179. size_t __len, mbstate_t *__restrict __ps,
  180. size_t __dstlen) __THROW;
  181. extern size_t __REDIRECT_NTH (__mbsrtowcs_alias,
  182. (wchar_t *__restrict __dst,
  183. const char **__restrict __src,
  184. size_t __len, mbstate_t *__restrict __ps),
  185. mbsrtowcs);
  186. extern size_t __REDIRECT_NTH (__mbsrtowcs_chk_warn,
  187. (wchar_t *__restrict __dst,
  188. const char **__restrict __src,
  189. size_t __len, mbstate_t *__restrict __ps,
  190. size_t __dstlen), __mbsrtowcs_chk)
  191. __warnattr ("mbsrtowcs called with dst buffer smaller than len "
  192. "* sizeof (wchar_t)");
  193. extern size_t __wcsrtombs_chk (char *__restrict __dst,
  194. const wchar_t **__restrict __src,
  195. size_t __len, mbstate_t *__restrict __ps,
  196. size_t __dstlen) __THROW;
  197. extern size_t __REDIRECT_NTH (__wcsrtombs_alias,
  198. (char *__restrict __dst,
  199. const wchar_t **__restrict __src,
  200. size_t __len, mbstate_t *__restrict __ps),
  201. wcsrtombs);
  202. extern size_t __REDIRECT_NTH (__wcsrtombs_chk_warn,
  203. (char *__restrict __dst,
  204. const wchar_t **__restrict __src,
  205. size_t __len, mbstate_t *__restrict __ps,
  206. size_t __dstlen), __wcsrtombs_chk)
  207. __warnattr ("wcsrtombs called with dst buffer smaller than len");
  208. #ifdef __USE_XOPEN2K8
  209. extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst,
  210. const char **__restrict __src, size_t __nmc,
  211. size_t __len, mbstate_t *__restrict __ps,
  212. size_t __dstlen) __THROW;
  213. extern size_t __REDIRECT_NTH (__mbsnrtowcs_alias,
  214. (wchar_t *__restrict __dst,
  215. const char **__restrict __src, size_t __nmc,
  216. size_t __len, mbstate_t *__restrict __ps),
  217. mbsnrtowcs);
  218. extern size_t __REDIRECT_NTH (__mbsnrtowcs_chk_warn,
  219. (wchar_t *__restrict __dst,
  220. const char **__restrict __src, size_t __nmc,
  221. size_t __len, mbstate_t *__restrict __ps,
  222. size_t __dstlen), __mbsnrtowcs_chk)
  223. __warnattr ("mbsnrtowcs called with dst buffer smaller than len "
  224. "* sizeof (wchar_t)");
  225. extern size_t __wcsnrtombs_chk (char *__restrict __dst,
  226. const wchar_t **__restrict __src,
  227. size_t __nwc, size_t __len,
  228. mbstate_t *__restrict __ps, size_t __dstlen)
  229. __THROW;
  230. extern size_t __REDIRECT_NTH (__wcsnrtombs_alias,
  231. (char *__restrict __dst,
  232. const wchar_t **__restrict __src,
  233. size_t __nwc, size_t __len,
  234. mbstate_t *__restrict __ps), wcsnrtombs);
  235. extern size_t __REDIRECT_NTH (__wcsnrtombs_chk_warn,
  236. (char *__restrict __dst,
  237. const wchar_t **__restrict __src,
  238. size_t __nwc, size_t __len,
  239. mbstate_t *__restrict __ps,
  240. size_t __dstlen), __wcsnrtombs_chk)
  241. __warnattr ("wcsnrtombs called with dst buffer smaller than len");
  242. #endif
  243. #ifdef __USE_MISC
  244. extern size_t __wcslcpy_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
  245. size_t __destlen) __THROW;
  246. extern size_t __REDIRECT_NTH (__wcslcpy_alias,
  247. (wchar_t *__dest, const wchar_t *__src,
  248. size_t __n), wcslcpy);
  249. extern size_t __wcslcat_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
  250. size_t __destlen) __THROW;
  251. extern size_t __REDIRECT_NTH (__wcslcat_alias,
  252. (wchar_t *__dest, const wchar_t *__src,
  253. size_t __n), wcslcat);
  254. #endif /* __USE_MISC */
  255. #endif /* bits/wchar2-decl.h. */