1type div_t
2element div_t int quot
3element div_t int rem
4type ldiv_t
5element ldiv_t long quot
6element ldiv_t long rem
7
8macro-int-constant EXIT_FAILURE
9macro-int-constant EXIT_SUCCESS == 0
10
11macro-constant NULL == 0
12macro-int-constant RAND_MAX >= 32767
13macro MB_CUR_MAX
14
15#if defined ISO99 || defined ISO11 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
16type lldiv_t
17element lldiv_t {long long} quot
18element lldiv_t {long long} rem
19#endif
20type size_t
21type wchar_t
22
23#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
24constant WNOHANG
25constant WUNTRACED
26
27macro WEXITSTATUS
28macro WIFEXITED
29macro WIFSIGNALED
30macro WIFSTOPPED
31macro WSTOPSIG
32macro WTERMSIG
33#endif
34
35#if !defined ISO && !defined XPG4 && !defined XPG42 && !defined UNIX98 && !defined POSIX
36function void _Exit (int)
37#endif
38#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
39function long a64l (const char*)
40#endif
41function void abort (void)
42function int abs (int)
43#if defined ISO11
44function {void *} aligned_alloc (size_t, size_t)
45#endif
46function int atexit (void(*)(void))
47#if defined ISO11
48function int at_quick_exit (void (*) (void))
49#endif
50function double atof (const char*)
51function int atoi (const char*)
52function {long int} atol (const char*)
53#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
54function {long long} atoll (const char*)
55#endif
56function {void*} bsearch (const void*, const void*, size_t, size_t, int(*)(const void*, const void*))
57function {void*} calloc (size_t, size_t)
58function div_t div (int, int)
59#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
60function double drand48 (void)
61#endif
62#if defined XPG42 || defined UNIX98 || defined XOPEN2K
63function {char*} ecvt (double, int, int*, int*)
64#endif
65#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
66function double erand48 (unsigned short int[3])
67#endif
68function void exit (int)
69#if defined XPG42 || defined UNIX98 || defined XOPEN2K
70function {char*} fcvt (double, int, int*, int*)
71#endif
72function void free (void*)
73#if defined XPG42 || defined UNIX98 || defined XOPEN2K
74function {char*} gcvt (double, int, char*)
75#endif
76function {char*} getenv (const char*)
77#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX
78function int getsubopt (char**, char *const*, char**)
79#endif
80#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
81function int grantpt (int)
82function {char*} initstate (unsigned int, char*, size_t)
83#endif
84#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
85function {long int} jrand48 (unsigned short int[3])
86#endif
87#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
88function {char*} l64a (long)
89#endif
90function {long int} labs (long int)
91#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
92function void lcong48 (unsigned short int[7])
93#endif
94function ldiv_t ldiv (long int, long int)
95#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
96function {long long} llabs (long long)
97function lldiv_t lldiv (long long, long long)
98#endif
99#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
100function {long int} lrand48 (void)
101#endif
102function {void*} malloc (size_t)
103function int mblen (const char*, size_t)
104function size_t mbstowcs (wchar_t*, const char*, size_t)
105function int mbtowc (wchar_t*, const char*, size_t)
106#if defined XOPEN2K8 || defined POSIX2008
107function {char*} mkdtemp (char*)
108#endif
109#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
110function {char*} mktemp (char*)
111#endif
112#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX
113function int mkstemp (char*)
114#endif
115#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
116function {long int} mrand48 (void)
117function {long int} nrand48 (unsigned short int[3])
118#endif
119#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
120function int posix_memalign (void**, size_t, size_t)
121#endif
122#if defined XOPEN2K || defined XOPEN2K8
123function int posix_openpt (int)
124#endif
125#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
126function {char*} ptsname (int)
127#endif
128#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
129function int putenv (char*)
130#endif
131function void qsort (void*, size_t, size_t, int(*)(const void*, const void*))
132#if defined ISO11
133function void quick_exit (int)
134#endif
135function int rand (void)
136#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
137function int rand_r (unsigned int*)
138#endif
139#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
140function long random (void)
141#endif
142function {void*} realloc (void*, size_t)
143#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
144function {char*} realpath (const char*, char*)
145#endif
146#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
147function {unsigned short int*} seed48 (unsigned short int[3])
148#endif
149#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
150function int setenv (const char*, const char*, int)
151#endif
152#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
153function {char*} setstate (char*)
154#endif
155function void srand (unsigned int)
156#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
157function void srand48 (long int)
158#endif
159#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
160function void srandom (unsigned)
161#endif
162function double strtod (const char*, char**)
163#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
164function float strtof (const char*, char**)
165function {long double} strtold (const char*, char**)
166#endif
167function {long int} strtol (const char*, char**, int)
168function {unsigned long int} strtoul (const char*, char**, int)
169#if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
170function {long long int} strtoll (const char*, char**, int)
171function {unsigned long long int} strtoull (const char*, char**, int)
172#endif
173function int system (const char*)
174#if defined XPG42 || defined UNIX98
175function int ttyslot (void)
176#endif
177#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
178function int unlockpt (int)
179#endif
180#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
181function int unsetenv (const char*)
182#endif
183#if defined XPG42 || defined UNIX98
184function {void*} valloc (size_t)
185#endif
186function size_t wcstombs (char*, const wchar_t*, size_t)
187function int wctomb (char*, wchar_t)
188
189#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
190allow-header stddef.h
191allow-header limits.h
192allow-header math.h
193allow-header sys/wait.h
194#endif
195
196allow str[abcdefghijklmnopqrstuvwxyz]*
197#if !defined ISO && !defined ISO99 && !defined ISO11
198allow *_t
199#endif
200