summaryrefslogtreecommitdiff
path: root/include/wchar.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/wchar.h')
-rw-r--r--include/wchar.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/include/wchar.h b/include/wchar.h
index dc73fab..e696ddf 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -56,6 +56,9 @@ extern "C" {
56#undef wmemmove 56#undef wmemmove
57#undef wmemset 57#undef wmemset
58 58
59#if __has_builtin(__builtin_fgetws)
60__diagnose_as_builtin(__builtin_fgetws, 1, 2, 3)
61#endif
59_FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t * _FORTIFY_POS0 __s, 62_FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t * _FORTIFY_POS0 __s,
60 int __n, FILE *__f) 63 int __n, FILE *__f)
61{ 64{
@@ -69,6 +72,9 @@ _FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t * _FORTIFY_POS0 __s,
69#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 72#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
70 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 73 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
71#undef mbsnrtowcs 74#undef mbsnrtowcs
75#if __has_builtin(__builtin_mbsnrtowcs)
76__diagnose_as_builtin(__builtin_mbsnrtowcs, 1, 2, 3, 4, 5)
77#endif
72_FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t * _FORTIFY_POS0 __d, 78_FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t * _FORTIFY_POS0 __d,
73 const char **__s, size_t __n, 79 const char **__s, size_t __n,
74 size_t __wn, mbstate_t *__st) 80 size_t __wn, mbstate_t *__st)
@@ -90,6 +96,9 @@ _FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t * _FORTIFY_POS0 __d,
90} 96}
91#endif 97#endif
92 98
99#if __has_builtin(__builtin_mbsrtowcs)
100__diagnose_as_builtin(__builtin_mbsrtowcs, 1, 2, 3, 4)
101#endif
93_FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t * _FORTIFY_POS0 __d, 102_FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t * _FORTIFY_POS0 __d,
94 const char **__s, size_t __wn, 103 const char **__s, size_t __wn,
95 mbstate_t *__st) 104 mbstate_t *__st)
@@ -104,6 +113,9 @@ _FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t * _FORTIFY_POS0 __d,
104 return __r; 113 return __r;
105} 114}
106 115
116#if __has_builtin(__builtin_mbstowcs)
117__diagnose_as_builtin(__builtin_mbstowcs, 1, 2, 3)
118#endif
107_FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t * _FORTIFY_POS0 __ws, 119_FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t * _FORTIFY_POS0 __ws,
108 const char *__s, size_t __wn) 120 const char *__s, size_t __wn)
109{ 121{
@@ -116,6 +128,9 @@ _FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t * _FORTIFY_POS0 __ws,
116 128
117/* FIXME clang */ 129/* FIXME clang */
118#ifndef __clang__ 130#ifndef __clang__
131#if __has_builtin(__builtin_wcrtomb)
132__diagnose_as_builtin(__builtin_wcrtomb, 1, 2, 3)
133#endif
119_FORTIFY_FN(wcrtomb) size_t wcrtomb(char * __s, wchar_t __w, mbstate_t *__st) 134_FORTIFY_FN(wcrtomb) size_t wcrtomb(char * __s, wchar_t __w, mbstate_t *__st)
120{ 135{
121 if (__s && MB_LEN_MAX > __bos(__s, 2)) { 136 if (__s && MB_LEN_MAX > __bos(__s, 2)) {
@@ -134,6 +149,9 @@ _FORTIFY_FN(wcrtomb) size_t wcrtomb(char * __s, wchar_t __w, mbstate_t *__st)
134} 149}
135#endif 150#endif
136 151
152#if __has_builtin(__builtin_wcscat)
153__diagnose_as_builtin(__builtin_wcscat, 1, 2)
154#endif
137_FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t * _FORTIFY_POS0 __d, 155_FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t * _FORTIFY_POS0 __d,
138 const wchar_t *__s) 156 const wchar_t *__s)
139{ 157{
@@ -144,6 +162,9 @@ _FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t * _FORTIFY_POS0 __d,
144 return __orig_wcscat(__d, __s); 162 return __orig_wcscat(__d, __s);
145} 163}
146 164
165#if __has_builtin(__builtin_wcscpy)
166__diagnose_as_builtin(__builtin_wcscpy, 1, 2)
167#endif
147_FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t * _FORTIFY_POS0 __d, 168_FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t * _FORTIFY_POS0 __d,
148 const wchar_t *__s) 169 const wchar_t *__s)
149{ 170{
@@ -154,6 +175,9 @@ _FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t * _FORTIFY_POS0 __d,
154 return __orig_wcscpy(__d, __s); 175 return __orig_wcscpy(__d, __s);
155} 176}
156 177
178#if __has_builtin(__builtin_wcsncat)
179__diagnose_as_builtin(__builtin_wcsncat, 1, 2, 3)
180#endif
157_FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t * _FORTIFY_POS0 __d, 181_FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t * _FORTIFY_POS0 __d,
158 const wchar_t *__s, size_t __n) 182 const wchar_t *__s, size_t __n)
159{ 183{
@@ -171,6 +195,9 @@ _FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t * _FORTIFY_POS0 __d,
171 return __orig_wcsncat(__d, __s, __n); 195 return __orig_wcsncat(__d, __s, __n);
172} 196}
173 197
198#if __has_builtin(__builtin_wcsncpy)
199__diagnose_as_builtin(__builtin_wcsncpy, 1, 2, 3)
200#endif
174_FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t * _FORTIFY_POS0 __d, 201_FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t * _FORTIFY_POS0 __d,
175 const wchar_t *__s, size_t __n) 202 const wchar_t *__s, size_t __n)
176{ 203{
@@ -184,6 +211,9 @@ _FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t * _FORTIFY_POS0 __d,
184#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 211#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
185 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 212 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
186#undef wcsnrtombs 213#undef wcsnrtombs
214#if __has_builtin(__builtin_wcsnrtombs)
215__diagnose_as_builtin(__builtin_wcsnrtombs, 1, 2, 3, 4, 5)
216#endif
187_FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char * _FORTIFY_POS0 __d, 217_FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char * _FORTIFY_POS0 __d,
188 const wchar_t **__s, size_t __wn, 218 const wchar_t **__s, size_t __wn,
189 size_t __n, mbstate_t *__st) 219 size_t __n, mbstate_t *__st)
@@ -205,6 +235,9 @@ _FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char * _FORTIFY_POS0 __d,
205} 235}
206#endif 236#endif
207 237
238#if __has_builtin(__builtin_wcsrtombs)
239__diagnose_as_builtin(__builtin_wcsrtombs, 1, 2, 3, 4)
240#endif
208_FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char * _FORTIFY_POS0 __d, 241_FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char * _FORTIFY_POS0 __d,
209 const wchar_t **__s, size_t __n, 242 const wchar_t **__s, size_t __n,
210 mbstate_t *__st) 243 mbstate_t *__st)
@@ -219,6 +252,9 @@ _FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char * _FORTIFY_POS0 __d,
219} 252}
220 253
221__access(write_only, 1, 3) 254__access(write_only, 1, 3)
255#if __has_builtin(__builtin_wcstombs)
256__diagnose_as_builtin(__builtin_wcstombs, 1, 2, 3)
257#endif
222_FORTIFY_FN(wcstombs) size_t wcstombs(char * _FORTIFY_POS0 __s, 258_FORTIFY_FN(wcstombs) size_t wcstombs(char * _FORTIFY_POS0 __s,
223 const wchar_t *__ws, size_t __n) 259 const wchar_t *__ws, size_t __n)
224{ 260{
@@ -229,6 +265,9 @@ _FORTIFY_FN(wcstombs) size_t wcstombs(char * _FORTIFY_POS0 __s,
229 return __orig_wcstombs(__s, __ws, __n); 265 return __orig_wcstombs(__s, __ws, __n);
230} 266}
231 267
268#if __has_builtin(__builtin_wctomb)
269__diagnose_as_builtin(__builtin_wctomb, 1, 2)
270#endif
232_FORTIFY_FN(wctomb) int wctomb(char * _FORTIFY_POS0 __s, wchar_t __w) 271_FORTIFY_FN(wctomb) int wctomb(char * _FORTIFY_POS0 __s, wchar_t __w)
233{ 272{
234 size_t __b = __bos(__s, 0); 273 size_t __b = __bos(__s, 0);
@@ -238,6 +277,9 @@ _FORTIFY_FN(wctomb) int wctomb(char * _FORTIFY_POS0 __s, wchar_t __w)
238 return __orig_wctomb(__s, __w); 277 return __orig_wctomb(__s, __w);
239} 278}
240 279
280#if __has_builtin(__builtin_wmemcpy)
281__diagnose_as_builtin(__builtin_wmemcpy, 1, 2, 3)
282#endif
241_FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t * _FORTIFY_POS0 __d, 283_FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t * _FORTIFY_POS0 __d,
242 const wchar_t *__s, size_t __n) 284 const wchar_t *__s, size_t __n)
243{ 285{
@@ -248,6 +290,9 @@ _FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t * _FORTIFY_POS0 __d,
248 return __orig_wmemcpy(__d, __s, __n); 290 return __orig_wmemcpy(__d, __s, __n);
249} 291}
250 292
293#if __has_builtin(__builtin_wmemmove)
294__diagnose_as_builtin(__builtin_wmemmove, 1, 2, 3)
295#endif
251_FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t * _FORTIFY_POS0 __d, 296_FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t * _FORTIFY_POS0 __d,
252 const wchar_t *__s, size_t __n) 297 const wchar_t *__s, size_t __n)
253{ 298{
@@ -258,6 +303,9 @@ _FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t * _FORTIFY_POS0 __d,
258 return __orig_wmemmove(__d, __s, __n); 303 return __orig_wmemmove(__d, __s, __n);
259} 304}
260 305
306#if __has_builtin(__builtin_wmemset)
307__diagnose_as_builtin(__builtin_wmemset, 1, 2, 3)
308#endif
261_FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t * _FORTIFY_POS0 __s, 309_FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t * _FORTIFY_POS0 __s,
262 wchar_t __c, size_t __n) 310 wchar_t __c, size_t __n)
263{ 311{