2 %define class-name libc_name
5 /* Copyright (C) 2000-2022 Free Software Foundation, Inc.
7 This file is part of GCC.
9 GCC is free software; you can redistribute it and/or modify it under
10 the terms of the GNU General Public License as published by the Free
11 Software Foundation; either version 3, or (at your option) any later
14 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
15 WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19 You should have received a copy of the GNU General Public License
20 along with GCC; see the file COPYING3. If not see
21 <http://www.gnu.org/licenses/>. */
23 struct libc_name_struct { const char *name; int c_ver; };
25 # The standard C library functions, for feeding to gperf; the result is used
28 # [lib.res.on.exception.handling]: None of the functions from the
29 # Standard C library shall report an error by throwing an
30 # exception, unless it calls a program-supplied function that
31 # throws an exception.
33 # Specific functions are commented out for the reason noted in each case.
35 #abort, 89 -- synchronous exception from SIGABRT handler
46 #bsearch, 89 -- calls user function which may throw exception
60 #fclose, 89 -- POSIX thread cancellation point
63 #fflush, 89 -- POSIX thread cancellation point
64 #fgetc, 89 -- POSIX thread cancellation point
65 #fgetpos, 89 -- POSIX thread cancellation point
66 #fgets, 89 -- POSIX thread cancellation point
67 #fgetwc, 89 -- POSIX thread cancellation point
68 #fgetws, 89 -- POSIX thread cancellation point
71 #fopen, 89 -- POSIX thread cancellation point
72 #fprintf, 89 -- POSIX thread cancellation point
73 #fputc, 89 -- POSIX thread cancellation point
74 #fputs, 89 -- POSIX thread cancellation point
75 #fputwc, 89 -- POSIX thread cancellation point
76 #fputws, 89 -- POSIX thread cancellation point
77 #fread, 89 -- POSIX thread cancellation point
79 #freopen, 89 -- POSIX thread cancellation point
81 #fscanf, 89 -- POSIX thread cancellation point
83 #fsetpos, 89 -- POSIX thread cancellation point
84 #ftell, 89 -- POSIX thread cancellation point
86 #fwprintf, 89 -- POSIX thread cancellation point
87 #fwrite, 89 -- POSIX thread cancellation point
88 #fwscanf, 89 -- POSIX thread cancellation point
89 #getc, 89 -- POSIX thread cancellation point
90 #getchar, 89 -- POSIX thread cancellation point
92 #gets, 89 -- POSIX thread cancellation point
93 #getwc, 89 -- POSIX thread cancellation point
94 #getwchar, 89 -- POSIX thread cancellation point
142 #perror, 89 -- POSIX thread cancellation point
144 #printf, 89 -- POSIX thread cancellation point
145 #putc, 89 -- POSIX thread cancellation point
146 #putchar, 89 -- POSIX thread cancellation point
147 #puts, 89 -- POSIX thread cancellation point
148 #putwc, 89 -- POSIX thread cancellation point
149 #putwchar, 89 -- POSIX thread cancellation point
150 #qsort, 89 -- calls user function which may throw exception
151 #raise, 89 -- synchronous exception from signal handler
154 #remove, 89 -- POSIX thread cancellation point
155 #rename, 89 -- POSIX thread cancellation point
156 #rewind, 89 -- POSIX thread cancellation point
157 #scanf, 89 -- POSIX thread cancellation point
174 #strerror, 89 -- POSIX thread cancellation point
191 #system, 89 -- POSIX thread cancellation point
195 #tmpfile, 89 -- POSIX thread cancellation point
196 #tmpnam, 89 -- POSIX thread cancellation point
202 #ungetc, 89 -- POSIX thread cancellation point
203 #ungetwc, 89 -- POSIX thread cancellation point
204 #vfprintf, 89 -- POSIX thread cancellation point
205 #vfwprintf, 89 -- POSIX thread cancellation point
206 #vprintf, 89 -- POSIX thread cancellation point
209 #vwprintf, 89 -- POSIX thread cancellation point
242 #wprintf, 89 -- POSIX thread cancellation point
243 #wscanf, 89 -- POSIX thread cancellation point
478 #vfscanf, 99 -- POSIX thread cancellation point
479 #vscanf, 99 -- POSIX thread cancellation point
490 #vfwscanf, 99 -- POSIX thread cancellation point
492 #vwscanf, 99 -- POSIX thread cancellation point
498 #atomic_thread_fence, 11 -- usually implemented as a macro
499 #atomic_signal_fence, 11 -- usually implemented as a macro
500 #atomic_flag_test_and_set, 11 -- usually implemented as a macro
501 #atomic_flag_test_and_set_explicit, 11 -- usually implemented as a macro
502 #atomic_flag_clear, 11 -- usually implemented as a macro
503 #atomic_flag_clear_explicit, 11 -- usually implemented as a macro
507 #call_once, 11 -- C11 threads
508 #cnd_broadcast, 11 -- C11 threads
509 #cnd_destroy, 11 -- C11 threads
510 #cnd_init, 11 -- C11 threads
511 #cnd_signal, 11 -- C11 threads
512 #cnd_timedwait, 11 -- C11 threads
513 #cnd_wait, 11 -- C11 threads
514 #mtx_destroy, 11 -- C11 threads
515 #mtx_init, 11 -- C11 threads
516 #mtx_lock, 11 -- C11 threads
517 #mtx_timedlock, 11 -- C11 threads
518 #mtx_trylock, 11 -- C11 threads
519 #mtx_unlock, 11 -- C11 threads
520 #thrd_create, 11 -- C11 threads
521 #thrd_current, 11 -- C11 threads
522 #thrd_detach, 11 -- C11 threads
523 #thrd_equal, 11 -- C11 threads
524 #thrd_exit, 11 -- C11 threads
525 #thrd_join, 11 -- C11 threads
526 #thrd_sleep, 11 -- C11 threads
527 #thrd_yield, 11 -- C11 threads
528 #tss_create, 11 -- C11 threads
529 #tss_delete, 11 -- C11 threads
530 #tss_get, 11 -- C11 threads
531 #tss_set, 11 -- C11 threads