190075Sobrien%{
290075Sobrien#ifdef __GNUC__
390075Sobrien__inline
490075Sobrien#endif
5132718Skanstatic unsigned int hash (const char *, unsigned int);
690075Sobrien#ifdef __GNUC__
790075Sobrien__inline
890075Sobrien#endif
9132718Skanconst char * libc_name_p (const char *, unsigned int);
1090075Sobrien%}
11132718Skan%%
1290075Sobrien# The standard C library functions, for feeding to gperf; the result is used
1390075Sobrien# by nothrow_libfn_p.
1490075Sobrien#
1590075Sobrien#   [lib.res.on.exception.handling]: None of the functions from the
1690075Sobrien#   Standard C library shall report an error by throwing an
1790075Sobrien#   exception, unless it calls a program-supplied function that
1890075Sobrien#   throws an exception.
1990075Sobrien#
20117395Skan# Specific functions are commented out for the reason noted in each case.
2190075Sobrien#
22117395Skan# abort			-- synchronous exception from SIGABRT handler
2390075Sobrienabs
2490075Sobrienacos
2590075Sobrienasctime
2690075Sobrienasin
2790075Sobrienatan
2890075Sobrienatan2
2990075Sobrienatexit
3090075Sobrienatof
3190075Sobrienatoi
3290075Sobrienatol
33117395Skan#bsearch		-- calls user function which may throw exception
3490075Sobrienbtowc
3590075Sobriencalloc
3690075Sobrienceil
3790075Sobrienclearerr
3890075Sobrienclock
3990075Sobriencos
4090075Sobriencosh
4190075Sobrienctime
4290075Sobriendifftime
4390075Sobriendiv
4490075Sobrienexit
4590075Sobrienexp
4690075Sobrienfabs
47117395Skan#fclose			-- POSIX thread cancellation point
4890075Sobrienfeof
4990075Sobrienferror
50117395Skan#fflush			-- POSIX thread cancellation point
51117395Skan#fgetc			-- POSIX thread cancellation point
52117395Skan#fgetpos		-- POSIX thread cancellation point
53117395Skan#fgets			-- POSIX thread cancellation point
54117395Skan#fgetwc			-- POSIX thread cancellation point
55117395Skan#fgetws			-- POSIX thread cancellation point
5690075Sobrienfloor
5790075Sobrienfmod
58117395Skan#fopen			-- POSIX thread cancellation point
59117395Skan#fprintf		-- POSIX thread cancellation point
60117395Skan#fputc			-- POSIX thread cancellation point
61117395Skan#fputs			-- POSIX thread cancellation point
62117395Skan#fputwc			-- POSIX thread cancellation point
63117395Skan#fputws			-- POSIX thread cancellation point
64117395Skan#fread			-- POSIX thread cancellation point
6590075Sobrienfree
66117395Skan#freopen		-- POSIX thread cancellation point
6790075Sobrienfrexp
68117395Skan#fscanf			-- POSIX thread cancellation point
6990075Sobrienfseek
70117395Skan#fsetpos		-- POSIX thread cancellation point
71117395Skan#ftell			-- POSIX thread cancellation point
7290075Sobrienfwide
73117395Skan#fwprintf		-- POSIX thread cancellation point
74117395Skan#fwrite			-- POSIX thread cancellation point
75117395Skan#fwscanf		-- POSIX thread cancellation point
76117395Skan#getc			-- POSIX thread cancellation point
77117395Skan#getchar		-- POSIX thread cancellation point
7890075Sobriengetenv
79117395Skan#gets			-- POSIX thread cancellation point
80117395Skan#getwc			-- POSIX thread cancellation point
81117395Skan#getwchar		-- POSIX thread cancellation point
8290075Sobriengmtime
8390075Sobrienisalnum
8490075Sobrienisalpha
8590075Sobrieniscntrl
8690075Sobrienisdigit
8790075Sobrienisgraph
8890075Sobrienislower
8990075Sobrienisprint
9090075Sobrienispunct
9190075Sobrienisspace
9290075Sobrienisupper
9390075Sobrieniswalnum
9490075Sobrieniswalpha
9590075Sobrieniswcntrl
9690075Sobrieniswctype
9790075Sobrieniswdigit
9890075Sobrieniswgraph
9990075Sobrieniswlower
10090075Sobrieniswprint
10190075Sobrieniswpunct
10290075Sobrieniswspace
10390075Sobrieniswupper
10490075Sobrieniswxdigit
10590075Sobrienisxdigit
10690075Sobrienlabs
10790075Sobrienldexp
10890075Sobrienldiv
10990075Sobrienlocaleconv
11090075Sobrienlocaltime
11190075Sobrienlog
11290075Sobrienlog10
11390075Sobrienlongjmp
11490075Sobrienmalloc
11590075Sobrienmblen
11690075Sobrienmbrlen
11790075Sobrienmbrtowc
11890075Sobrienmbsinit
11990075Sobrienmbsrtowcs
12090075Sobrienmbstowcs
12190075Sobrienmbtowc
12290075Sobrienmemchr
12390075Sobrienmemcmp
12490075Sobrienmemcpy
12590075Sobrienmemmove
12690075Sobrienmemset
12790075Sobrienmktime
12890075Sobrienmodf
129117395Skan#perror			-- POSIX thread cancellation point
13090075Sobrienpow
131117395Skan#printf			-- POSIX thread cancellation point
132117395Skan#putc			-- POSIX thread cancellation point
133117395Skan#putchar		-- POSIX thread cancellation point
134117395Skan#puts			-- POSIX thread cancellation point
135117395Skan#putwc			-- POSIX thread cancellation point
136117395Skan#putwchar		-- POSIX thread cancellation point
137117395Skan#qsort			-- calls user function which may throw exception
138117395Skan#raise			-- synchronous exception from signal handler
13990075Sobrienrand
14090075Sobrienrealloc
141117395Skan#remove			-- POSIX thread cancellation point
142117395Skan#rename			-- POSIX thread cancellation point
143117395Skan#rewind			-- POSIX thread cancellation point
144117395Skan#scanf			-- POSIX thread cancellation point
14590075Sobriensetbuf
14690075Sobriensetlocale
14790075Sobriensetvbuf
14890075Sobriensignal
14990075Sobriensin
15090075Sobriensinh
15190075Sobriensprintf
15290075Sobriensqrt
15390075Sobriensrand
15490075Sobriensscanf
15590075Sobrienstrcat
15690075Sobrienstrchr
15790075Sobrienstrcmp
15890075Sobrienstrcoll
15990075Sobrienstrcpy
16090075Sobrienstrcspn
161117395Skan#strerror		-- POSIX thread cancellation point
16290075Sobrienstrftime
16390075Sobrienstrlen
16490075Sobrienstrncat
16590075Sobrienstrncmp
16690075Sobrienstrncpy
16790075Sobrienstrpbrk
16890075Sobrienstrrchr
16990075Sobrienstrspn
17090075Sobrienstrstr
17190075Sobrienstrtod
17290075Sobrienstrtok
17390075Sobrienstrtol
17490075Sobrienstrtoul
17590075Sobrienstrxfrm
17690075Sobrienswprintf
17790075Sobrienswscanf
178117395Skan#system			-- POSIX thread cancellation point
17990075Sobrientan
18090075Sobrientanh
18190075Sobrientime
182117395Skan#tmpfile		-- POSIX thread cancellation point
183117395Skan#tmpnam			-- POSIX thread cancellation point
18490075Sobrientolower
18590075Sobrientoupper
18690075Sobrientowctrans
18790075Sobrientowlower
18890075Sobrientowupper
189117395Skan#ungetc			-- POSIX thread cancellation point
190117395Skan#ungetwc		-- POSIX thread cancellation point
191117395Skan#vfprintf		-- POSIX thread cancellation point
192117395Skan#vfwprintf		-- POSIX thread cancellation point
193117395Skan#vprintf		-- POSIX thread cancellation point
19490075Sobrienvsprintf
19590075Sobrienvswprintf
196117395Skan#vwprintf		-- POSIX thread cancellation point
19790075Sobrienwcrtomb
19890075Sobrienwcscat
19990075Sobrienwcschr
20090075Sobrienwcscmp
20190075Sobrienwcscoll
20290075Sobrienwcscpy
20390075Sobrienwcscspn
20490075Sobrienwcsftime
20590075Sobrienwcslen
20690075Sobrienwcsncat
20790075Sobrienwcsncmp
20890075Sobrienwcsncpy
20990075Sobrienwcspbrk
21090075Sobrienwcsrchr
21190075Sobrienwcsrtombs
21290075Sobrienwcsspn
21390075Sobrienwcsstr
21490075Sobrienwcstod
21590075Sobrienwcstok
21690075Sobrienwcstol
21790075Sobrienwcstombs
21890075Sobrienwcstoul
21990075Sobrienwcsxfrm
22090075Sobrienwctob
22190075Sobrienwctomb
22290075Sobrienwctrans
22390075Sobrienwctype
22490075Sobrienwmemchr
22590075Sobrienwmemcmp
22690075Sobrienwmemcpy
22790075Sobrienwmemmove
22890075Sobrienwmemset
229117395Skan#wprintf		-- POSIX thread cancellation point
230117395Skan#wscanf			-- POSIX thread cancellation point
231