summaryrefslogtreecommitdiff
path: root/include/wchar.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/wchar.h')
-rw-r--r--include/wchar.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/wchar.h b/include/wchar.h
index f047201..89ae539 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -56,6 +56,7 @@ extern "C" {
56#undef wmemmove 56#undef wmemmove
57#undef wmemset 57#undef wmemset
58 58
59__diagnose_as_builtin(__builtin_fgetws, 1, 2, 3)
59_FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t * _FORTIFY_POS0 __s, 60_FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t * _FORTIFY_POS0 __s,
60 int __n, FILE *__f) 61 int __n, FILE *__f)
61{ 62{
@@ -69,6 +70,7 @@ _FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t * _FORTIFY_POS0 __s,
69#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 70#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
70 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 71 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
71#undef mbsnrtowcs 72#undef mbsnrtowcs
73__diagnose_as_builtin(__builtin_mbsnrtowcs, 1, 2, 3, 4, 5)
72_FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t * _FORTIFY_POS0 __d, 74_FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t * _FORTIFY_POS0 __d,
73 const char **__s, size_t __n, 75 const char **__s, size_t __n,
74 size_t __wn, mbstate_t *__st) 76 size_t __wn, mbstate_t *__st)
@@ -90,6 +92,7 @@ _FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t * _FORTIFY_POS0 __d,
90} 92}
91#endif 93#endif
92 94
95__diagnose_as_builtin(__builtin_mbsrtowcs, 1, 2, 3, 4)
93_FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t * _FORTIFY_POS0 __d, 96_FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t * _FORTIFY_POS0 __d,
94 const char **__s, size_t __wn, 97 const char **__s, size_t __wn,
95 mbstate_t *__st) 98 mbstate_t *__st)
@@ -104,6 +107,7 @@ _FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t * _FORTIFY_POS0 __d,
104 return __r; 107 return __r;
105} 108}
106 109
110__diagnose_as_builtin(__builtin_mbstowcs, 1, 2, 3)
107_FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t * _FORTIFY_POS0 __ws, 111_FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t * _FORTIFY_POS0 __ws,
108 const char *__s, size_t __wn) 112 const char *__s, size_t __wn)
109{ 113{
@@ -116,6 +120,7 @@ _FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t * _FORTIFY_POS0 __ws,
116 120
117/* FIXME clang */ 121/* FIXME clang */
118#ifndef __clang__ 122#ifndef __clang__
123__diagnose_as_builtin(__builtin_wcrtomb, 1, 2, 3)
119_FORTIFY_FN(wcrtomb) size_t wcrtomb(char * __s, wchar_t __w, mbstate_t *__st) 124_FORTIFY_FN(wcrtomb) size_t wcrtomb(char * __s, wchar_t __w, mbstate_t *__st)
120{ 125{
121 if (__s && MB_LEN_MAX > __bos(__s, 2)) { 126 if (__s && MB_LEN_MAX > __bos(__s, 2)) {
@@ -134,6 +139,7 @@ _FORTIFY_FN(wcrtomb) size_t wcrtomb(char * __s, wchar_t __w, mbstate_t *__st)
134} 139}
135#endif 140#endif
136 141
142__diagnose_as_builtin(__builtin_wcscat, 1, 2)
137_FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t * _FORTIFY_POS0 __d, 143_FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t * _FORTIFY_POS0 __d,
138 const wchar_t *__s) 144 const wchar_t *__s)
139{ 145{
@@ -144,6 +150,7 @@ _FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t * _FORTIFY_POS0 __d,
144 return __orig_wcscat(__d, __s); 150 return __orig_wcscat(__d, __s);
145} 151}
146 152
153__diagnose_as_builtin(__builtin_wcscpy, 1, 2)
147_FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t * _FORTIFY_POS0 __d, 154_FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t * _FORTIFY_POS0 __d,
148 const wchar_t *__s) 155 const wchar_t *__s)
149{ 156{
@@ -154,6 +161,7 @@ _FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t * _FORTIFY_POS0 __d,
154 return __orig_wcscpy(__d, __s); 161 return __orig_wcscpy(__d, __s);
155} 162}
156 163
164__diagnose_as_builtin(__builtin_wcsncat, 1, 2, 3)
157_FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t * _FORTIFY_POS0 __d, 165_FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t * _FORTIFY_POS0 __d,
158 const wchar_t *__s, size_t __n) 166 const wchar_t *__s, size_t __n)
159{ 167{
@@ -171,6 +179,7 @@ _FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t * _FORTIFY_POS0 __d,
171 return __orig_wcsncat(__d, __s, __n); 179 return __orig_wcsncat(__d, __s, __n);
172} 180}
173 181
182__diagnose_as_builtin(__builtin_wcsncpy, 1, 2, 3)
174_FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t * _FORTIFY_POS0 __d, 183_FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t * _FORTIFY_POS0 __d,
175 const wchar_t *__s, size_t __n) 184 const wchar_t *__s, size_t __n)
176{ 185{
@@ -184,6 +193,7 @@ _FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t * _FORTIFY_POS0 __d,
184#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 193#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
185 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 194 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
186#undef wcsnrtombs 195#undef wcsnrtombs
196__diagnose_as_builtin(__builtin_wcsntombs, 1, 2, 3, 4, 5)
187_FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char * _FORTIFY_POS0 __d, 197_FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char * _FORTIFY_POS0 __d,
188 const wchar_t **__s, size_t __wn, 198 const wchar_t **__s, size_t __wn,
189 size_t __n, mbstate_t *__st) 199 size_t __n, mbstate_t *__st)
@@ -205,6 +215,7 @@ _FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char * _FORTIFY_POS0 __d,
205} 215}
206#endif 216#endif
207 217
218__diagnose_as_builtin(__builtin_wcsrtombs, 1, 2, 3, 4)
208_FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char * _FORTIFY_POS0 __d, 219_FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char * _FORTIFY_POS0 __d,
209 const wchar_t **__s, size_t __n, 220 const wchar_t **__s, size_t __n,
210 mbstate_t *__st) 221 mbstate_t *__st)
@@ -219,6 +230,7 @@ _FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char * _FORTIFY_POS0 __d,
219} 230}
220 231
221__access(write_only, 2, 3) 232__access(write_only, 2, 3)
233__diagnose_as_builtin(__builtin_wcstombs, 1, 2, 3)
222_FORTIFY_FN(wcstombs) size_t wcstombs(char * _FORTIFY_POS0 __s, 234_FORTIFY_FN(wcstombs) size_t wcstombs(char * _FORTIFY_POS0 __s,
223 const wchar_t *__ws, size_t __n) 235 const wchar_t *__ws, size_t __n)
224{ 236{
@@ -229,6 +241,7 @@ _FORTIFY_FN(wcstombs) size_t wcstombs(char * _FORTIFY_POS0 __s,
229 return __orig_wcstombs(__s, __ws, __n); 241 return __orig_wcstombs(__s, __ws, __n);
230} 242}
231 243
244__diagnose_as_builtin(__builtin_wctomb, 1, 2)
232_FORTIFY_FN(wctomb) int wctomb(char * _FORTIFY_POS0 __s, wchar_t __w) 245_FORTIFY_FN(wctomb) int wctomb(char * _FORTIFY_POS0 __s, wchar_t __w)
233{ 246{
234 size_t __b = __bos(__s, 0); 247 size_t __b = __bos(__s, 0);
@@ -238,6 +251,7 @@ _FORTIFY_FN(wctomb) int wctomb(char * _FORTIFY_POS0 __s, wchar_t __w)
238 return __orig_wctomb(__s, __w); 251 return __orig_wctomb(__s, __w);
239} 252}
240 253
254__diagnose_as_builtin(__builtin_wmemcpy, 1, 2, 3)
241_FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t * _FORTIFY_POS0 __d, 255_FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t * _FORTIFY_POS0 __d,
242 const wchar_t *__s, size_t __n) 256 const wchar_t *__s, size_t __n)
243{ 257{
@@ -248,6 +262,7 @@ _FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t * _FORTIFY_POS0 __d,
248 return __orig_wmemcpy(__d, __s, __n); 262 return __orig_wmemcpy(__d, __s, __n);
249} 263}
250 264
265__diagnose_as_builtin(__builtin_wmemmove, 1, 2, 3)
251_FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t * _FORTIFY_POS0 __d, 266_FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t * _FORTIFY_POS0 __d,
252 const wchar_t *__s, size_t __n) 267 const wchar_t *__s, size_t __n)
253{ 268{
@@ -258,6 +273,7 @@ _FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t * _FORTIFY_POS0 __d,
258 return __orig_wmemmove(__d, __s, __n); 273 return __orig_wmemmove(__d, __s, __n);
259} 274}
260 275
276__diagnose_as_builtin(__builtin_wmemset, 1, 2, 3)
261_FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t * _FORTIFY_POS0 __s, 277_FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t * _FORTIFY_POS0 __s,
262 wchar_t __c, size_t __n) 278 wchar_t __c, size_t __n)
263{ 279{