diff options
| author | jvoisin | 2023-09-22 18:27:54 +0200 |
|---|---|---|
| committer | jvoisin | 2023-09-22 18:30:35 +0200 |
| commit | 75b95fa25df74fcd0498bf59e3524f20f594755d (patch) | |
| tree | 729ba69a2358566f126a8b20f9f30d7a5f7f249c /include/wchar.h | |
| parent | 8c2352b985b1bf69efb965ba15f5e300eb7e8e12 (diff) | |
Add more __diagnose_as_builtin annotations
Diffstat (limited to 'include/wchar.h')
| -rw-r--r-- | include/wchar.h | 48 |
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 | { |
