blob: b966423a2c15dd4ddb770c38b444106100167f9b [file] [log] [blame]
Richard Smith80fd10e2014-05-21 00:33:491module std [system] {
2 // FIXME: The standard does not require that each of these submodules
3 // re-exports its imported modules. We should provide an alternative form of
4 // export that issues a warning if a name from the submodule is used, and
5 // use that to provide a 'strict mode' for libc++.
Bruno Cardoso Lopes81440dc2016-10-21 03:14:276
7 // Deprecated C-compatibility headers. These can all be included from within
8 // an 'extern "C"' context.
9 module depr [extern_c] {
10 // <assert.h> provided by C library.
11 module ctype_h {
12 header "ctype.h"
13 export *
14 }
15 module errno_h {
16 header "errno.h"
17 export *
18 }
19 // <fenv.h> provided by C library.
20 // <float.h> provided by compiler or C library.
21 module inttypes_h {
22 header "inttypes.h"
23 export stdint_h
24/*
25 export_macros
26 PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR,
27 PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR,
28 PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR,
29 PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR,
30 PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR,
31 PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR,
32 SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR,
33 SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR,
34 SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR,
35 SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR,
36 SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR,
37 SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR
38*/
39 export *
40 }
41 // <iso646.h> provided by compiler.
42 // <limits.h> provided by compiler or C library.
43 // <locale.h> provided by C library.
44 module math_h {
45 header "math.h"
46/*
47 export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN,
48 FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO,
49 HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN,
50 MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
51*/
52 export *
53 }
54 module setjmp_h {
55 header "setjmp.h"
56/*
57 export_macros setjmp
58*/
59 export *
60 }
61 // FIXME: <stdalign.h> is missing.
62 // <signal.h> provided by C library.
63 // <stdarg.h> provided by compiler.
64 // <stdbool.h> provided by compiler.
65 module stddef_h {
66 // <stddef.h>'s __need_* macros require textual inclusion.
67 textual header "stddef.h"
68 }
69 // <stdint.h> provided by compiler or C library.
70 module stdio_h {
71 // <stdio.h>'s __need_* macros require textual inclusion.
72 textual header "stdio.h"
73/*
74 export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL,
75 SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF,
76 stdin, stdout, stderr
77*/
78 export *
79 }
80 module stdlib_h {
81 // <stdlib.h>'s __need_* macros require textual inclusion.
82 textual header "stdlib.h"
83/*
84 export_macros RAND_MAX
85*/
86 export *
87 }
88 module string_h {
89 header "string.h"
90/*
91 export_macros NULL
92*/
93 export *
94 }
95 // FIXME: <uchar.h> is missing.
96 // <time.h> provided by C library.
97 module wchar_h {
98 // <wchar.h>'s __need_* macros require textual inclusion.
99 textual header "wchar.h"
100/*
101 export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF
102*/
103 export *
104 }
105 module wctype_h {
106 header "wctype.h"
107/*
108 export_macros WEOF
109*/
110 export *
111 }
112 }
113
114 // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
115 // allow their use in extern "C" contexts.
116 module complex_h {
117 header "complex.h"
118 export ccomplex
119 export *
120 }
121 module tgmath_h {
122 header "tgmath.h"
123 export ccomplex
124 export cmath
125 export *
126 }
127
128 // C compatibility headers.
129 module compat {
130 module cassert {
131 // <cassert>'s use of NDEBUG requires textual inclusion.
132 textual header "cassert"
133 }
134 module ccomplex {
135 header "ccomplex"
136 export complex
137 export *
138 }
139 module cctype {
140 header "cctype"
141 export *
142 }
143 module cerrno {
144 header "cerrno"
145/*
146 export_macros ECONNREFUSED, EIO, ENODEV, ENOTEMPTY, ERANGE,
147 E2BIG, ECONNRESET, EISCONN, ENOENT, ENOTRECOVERABLE, EROFS,
148 EACCES, EDEADLK, EISDIR, ENOEXEC, ENOTSOCK, ESPIPE,
149 EADDRINUSE, EDESTADDRREQ, ELOOP, ENOLCK, ENOTSUP, ESRCH,
150 EADDRNOTAVAIL, EDOM, EMFILE, ENOLINK, ENOTTY, ETIME,
151 EAFNOSUPPORT, EEXIST, EMLINK, ENOMEM, ENXIO, ETIMEDOUT,
152 EAGAIN, EFAULT, EMSGSIZE, ENOMSG, EOPNOTSUPP, ETXTBSY,
153 EALREADY, EFBIG, ENAMETOOLONG, ENOPROTOOPT, EOVERFLOW, EWOULDBLOCK,
154 EBADF, EHOSTUNREACH, ENETDOWN, ENOSPC, EOWNERDEAD, EXDEV,
155 EBADMSG, EIDRM, ENETRESET, ENOSR, EPERM, errno,
156 EBUSY, EILSEQ, ENETUNREACH, ENOSTR, EPIPE,
157 ECANCELED, EINPROGRESS, ENFILE, ENOSYS, EPROTO,
158 ECHILD, EINTR, ENOBUFS, ENOTCONN, EPROTONOSUPPORT,
159 ECONNABORTED, EINVAL, ENODATA, ENOTDIR, EPROTOTYPE
160*/
161 export *
162 }
163 module cfenv {
164 header "cfenv"
165/*
166 export_macros FE_ALL_EXCEPT, FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW,
167 FE_UNDERFLOW, FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD,
168 FE_DFL_ENV
169*/
170 export *
171 }
172 module cfloat {
173 header "cfloat"
174/*
175 export_macros FLT_EVAL_METHOD, FLT_RADIX, FLT_ROUNDS,
176 FLT_DIG, FLT_EPSILON, FLT_MANT_DIG,
177 FLT_MAX, FLT_MAX_10_EXP, FLT_MAX_EXP,
178 FLT_MIN, FLT_MIN_10_EXP, FLT_MIN_EXP,
179 DBL_DIG, DBL_EPSILON, DBL_MANT_DIG,
180 DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP,
181 DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP,
182 LDBL_DIG, LDBL_EPSILON, LDBL_MANT_DIG,
183 LDBL_MAX, LDBL_MAX_10_EXP, LDBL_MAX_EXP,
184 LDBL_MIN, LDBL_MIN_10_EXP, LDBL_MIN_EXP
185*/
186 export *
187 }
188 module cinttypes {
189 header "cinttypes"
190 export cstdint
191/*
192 export_macros
193 PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR,
194 PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR,
195 PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR,
196 PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR,
197 PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR,
198 PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR,
199 SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR,
200 SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR,
201 SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR,
202 SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR,
203 SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR,
204 SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR
205*/
206 export *
207 }
208 module ciso646 {
209 header "ciso646"
210 export *
211 }
212 module climits {
213 header "climits"
214/*
215 export_macros CHAR_BIT, CHAR_MIN, CHAR_MAX,
216 SCHAR_MIN, SCHAR_MAX, UCHAR_MAX,
217 SHRT_MIN, SHRT_MAX, USHRT_MAX,
218 INT_MIN, INT_MAX, UINT_MAX,
219 LONG_MIN, LONG_MAX, ULONG_MAX,
220 LLONG_MIN, LLONG_MAX, ULLONG_MAX,
221 MB_LEN_MAX
222*/
223 export *
224 }
225 module clocale {
226 header "clocale"
227/*
228 export_macros LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, NULL
229*/
230 export *
231 }
232 module cmath {
233 header "cmath"
234/*
235 export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN,
236 FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO,
237 HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN,
238 MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
239*/
240 export *
241 }
242 module csetjmp {
243 header "csetjmp"
244/*
245 export_macros setjmp
246*/
247 export *
248 }
249 module csignal {
250 header "csignal"
251/*
252 export_macros SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM,
253 SIG_DFL, SIG_IGN, SIG_ERR
254*/
255 export *
256 }
257 // FIXME: <cstdalign> is missing.
258 module cstdarg {
259 header "cstdarg"
260/*
261 export_macros va_arg, va_start, va_end, va_copy
262*/
263 export *
264 }
265 module cstdbool {
266 header "cstdbool"
267/*
268 export_macros __bool_true_false_are_defined
269*/
270 export *
271 }
272 module cstddef {
273 header "cstddef"
274/*
275 export_macros NULL, offsetof
276*/
277 export *
278 }
279 module cstdint {
280 header "cstdint"
281/*
282 export_macros
283 INT_8_MIN, INT_8_MAX, UINT_8_MAX, INT_16_MIN, INT_16_MAX, UINT_16_MAX,
284 INT_32_MIN, INT_32_MAX, UINT_32_MAX, INT_64_MIN, INT_64_MAX, UINT_64_MAX,
285 INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX,
286 INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX,
287 INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX,
288 INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
289 INT_MAX_MIN, INT_MAX_MAX, UINT_MAX_MAX, INT_PTR_MIN, INT_PTR_MAX, UINT_PTR_MAX,
290 PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX,
291 SIZE_MAX
292*/
293 export *
294 }
295 module cstdio {
296 header "cstdio"
297/*
298 export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL,
299 SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF,
300 stdin, stdout, stderr
301*/
302 export *
303 }
304 module cstdlib {
305 header "cstdlib"
306/*
307 export_macros RAND_MAX
308*/
309 export *
310 }
311 module cstring {
312 header "cstring"
313/*
314 export_macros NULL
315*/
316 export *
317 }
318 module ctgmath {
319 header "ctgmath"
320 export ccomplex
321 export cmath
322 export *
323 }
324 module ctime {
325 header "ctime"
326/*
327 export_macros NULL, CLOCKS_PER_SEC
328*/
329 export *
330 }
331 // FIXME: <cuchar> is missing.
332 module cwchar {
333 header "cwchar"
334/*
335 export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF
336*/
337 export *
338 }
339 module cwctype {
340 header "cwctype"
341/*
342 export_macros WEOF
343*/
344 export *
345 }
346 }
347
Richard Smith80fd10e2014-05-21 00:33:49348 module algorithm {
349 header "algorithm"
350 export initializer_list
351 export *
352 }
353 module array {
354 header "array"
355 export initializer_list
356 export *
357 }
358 module atomic {
359 header "atomic"
360 export *
Nico Weber28d692d2014-09-24 04:44:54361 requires cplusplus11
Richard Smith80fd10e2014-05-21 00:33:49362 }
363 module bitset {
364 header "bitset"
365 export string
366 export iosfwd
367 export *
368 }
369 // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
370 module ccomplex {
371 header "ccomplex"
372 export complex
373 export *
374 }
375 module cctype {
376 header "cctype"
377 export *
378 }
379 module cerrno {
380 header "cerrno"
381/*
382 export_macros ECONNREFUSED, EIO, ENODEV, ENOTEMPTY, ERANGE,
383 E2BIG, ECONNRESET, EISCONN, ENOENT, ENOTRECOVERABLE, EROFS,
384 EACCES, EDEADLK, EISDIR, ENOEXEC, ENOTSOCK, ESPIPE,
385 EADDRINUSE, EDESTADDRREQ, ELOOP, ENOLCK, ENOTSUP, ESRCH,
386 EADDRNOTAVAIL, EDOM, EMFILE, ENOLINK, ENOTTY, ETIME,
387 EAFNOSUPPORT, EEXIST, EMLINK, ENOMEM, ENXIO, ETIMEDOUT,
388 EAGAIN, EFAULT, EMSGSIZE, ENOMSG, EOPNOTSUPP, ETXTBSY,
389 EALREADY, EFBIG, ENAMETOOLONG, ENOPROTOOPT, EOVERFLOW, EWOULDBLOCK,
390 EBADF, EHOSTUNREACH, ENETDOWN, ENOSPC, EOWNERDEAD, EXDEV,
391 EBADMSG, EIDRM, ENETRESET, ENOSR, EPERM, errno,
392 EBUSY, EILSEQ, ENETUNREACH, ENOSTR, EPIPE,
393 ECANCELED, EINPROGRESS, ENFILE, ENOSYS, EPROTO,
394 ECHILD, EINTR, ENOBUFS, ENOTCONN, EPROTONOSUPPORT,
395 ECONNABORTED, EINVAL, ENODATA, ENOTDIR, EPROTOTYPE
396*/
397 export *
398 }
399 module cfenv {
400 header "cfenv"
401/*
402 export_macros FE_ALL_EXCEPT, FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW,
403 FE_UNDERFLOW, FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD,
404 FE_DFL_ENV
405*/
406 export *
407 }
408 module cfloat {
409 header "cfloat"
410/*
411 export_macros FLT_EVAL_METHOD, FLT_RADIX, FLT_ROUNDS,
412 FLT_DIG, FLT_EPSILON, FLT_MANT_DIG,
413 FLT_MAX, FLT_MAX_10_EXP, FLT_MAX_EXP,
414 FLT_MIN, FLT_MIN_10_EXP, FLT_MIN_EXP,
415 DBL_DIG, DBL_EPSILON, DBL_MANT_DIG,
416 DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP,
417 DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP,
418 LDBL_DIG, LDBL_EPSILON, LDBL_MANT_DIG,
419 LDBL_MAX, LDBL_MAX_10_EXP, LDBL_MAX_EXP,
420 LDBL_MIN, LDBL_MIN_10_EXP, LDBL_MIN_EXP
421*/
422 export *
423 }
424 module chrono {
425 header "chrono"
426 export *
427 }
428 module cinttypes {
429 header "cinttypes"
430 export cstdint
431/*
432 export_macros
433 PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR,
434 PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR,
435 PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR,
436 PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR,
437 PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR,
438 PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR,
439 SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR,
440 SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR,
441 SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR,
442 SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR,
443 SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR,
444 SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR
445*/
446 export *
447 }
448 module ciso646 {
449 header "ciso646"
450 export *
451 }
452 module climits {
453 header "climits"
454/*
455 export_macros CHAR_BIT, CHAR_MIN, CHAR_MAX,
456 SCHAR_MIN, SCHAR_MAX, UCHAR_MAX,
457 SHRT_MIN, SHRT_MAX, USHRT_MAX,
458 INT_MIN, INT_MAX, UINT_MAX,
459 LONG_MIN, LONG_MAX, ULONG_MAX,
460 LLONG_MIN, LLONG_MAX, ULLONG_MAX,
461 MB_LEN_MAX
462*/
463 export *
464 }
465 module clocale {
466 header "clocale"
467/*
468 export_macros LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, NULL
469*/
470 export *
471 }
472 module cmath {
473 header "cmath"
474/*
475 export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN,
476 FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO,
477 HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN,
478 MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
479*/
480 export *
481 }
482 module codecvt {
483 header "codecvt"
484 export *
485 }
486 module complex {
487 header "complex"
488 export *
489 }
490 module condition_variable {
491 header "condition_variable"
492 export *
493 }
494 module csetjmp {
495 header "csetjmp"
496/*
497 export_macros setjmp
498*/
499 export *
500 }
501 module csignal {
502 header "csignal"
503/*
504 export_macros SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM,
505 SIG_DFL, SIG_IGN, SIG_ERR
506*/
507 export *
508 }
509 module cstdarg {
510 header "cstdarg"
511/*
512 export_macros va_arg, va_start, va_end, va_copy
513*/
514 export *
515 }
516 module cstdbool {
517 header "cstdbool"
518/*
519 export_macros __bool_true_false_are_defined
520*/
521 export *
522 }
523 module cstddef {
524 header "cstddef"
525/*
526 export_macros NULL, offsetof
527*/
528 export *
529 }
530 module cstdint {
531 header "cstdint"
532/*
533 export_macros
534 INT_8_MIN, INT_8_MAX, UINT_8_MAX, INT_16_MIN, INT_16_MAX, UINT_16_MAX,
535 INT_32_MIN, INT_32_MAX, UINT_32_MAX, INT_64_MIN, INT_64_MAX, UINT_64_MAX,
536 INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX,
537 INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX,
538 INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX,
539 INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
540 INT_MAX_MIN, INT_MAX_MAX, UINT_MAX_MAX, INT_PTR_MIN, INT_PTR_MAX, UINT_PTR_MAX,
541 PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX,
542 SIZE_MAX
543*/
544 export *
545 }
546 module cstdio {
547 header "cstdio"
548/*
549 export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL,
550 SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF,
551 stdin, stdout, stderr
552*/
553 export *
554 }
555 module cstdlib {
556 header "cstdlib"
557/*
558 export_macros RAND_MAX
559*/
560 export *
561 }
562 module cstring {
563 header "cstring"
564/*
565 export_macros NULL
566*/
567 export *
568 }
569 module ctgmath {
570 header "ctgmath"
571 export ccomplex
572 export cmath
573 export *
574 }
575 module ctime {
576 header "ctime"
577/*
578 export_macros NULL, CLOCKS_PER_SEC
579*/
580 export *
581 }
582 module cwchar {
583 header "cwchar"
584/*
585 export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF
586*/
587 export *
588 }
589 module cwctype {
590 header "cwctype"
591/*
592 export_macros WEOF
593*/
594 export *
595 }
596 module deque {
597 header "deque"
598 export initializer_list
599 export *
600 }
601 module exception {
602 header "exception"
603 export *
604 }
605 module forward_list {
606 header "forward_list"
607 export initializer_list
608 export *
609 }
610 module fstream {
611 header "fstream"
612 export *
613 }
614 module functional {
615 header "functional"
616 export *
617 }
618 module future {
619 header "future"
620 export *
621 }
622 module initializer_list {
623 header "initializer_list"
624 export *
625 }
626 module iomanip {
627 header "iomanip"
628 export *
629 }
630 module ios {
631 header "ios"
632 export iosfwd
633 export *
634 }
635 module iosfwd {
636 header "iosfwd"
637 export *
638 }
639 module iostream {
640 header "iostream"
641 export ios
642 export streambuf
643 export istream
644 export ostream
645 export *
646 }
647 module istream {
648 header "istream"
649 // FIXME: should re-export ios, streambuf?
650 export *
651 }
652 module iterator {
653 header "iterator"
654 export *
655 }
656 module limits {
657 header "limits"
658 export *
659 }
660 module list {
661 header "list"
662 export initializer_list
663 export *
664 }
665 module locale {
666 header "locale"
667 export *
668 }
669 module map {
670 header "map"
671 export initializer_list
672 export *
673 }
674 module memory {
675 header "memory"
676 export *
677 }
678 module mutex {
679 header "mutex"
680 export *
681 }
682 module new {
683 header "new"
684 export *
685 }
686 module numeric {
687 header "numeric"
688 export *
689 }
690 module ostream {
691 header "ostream"
692 // FIXME: should re-export ios, streambuf?
693 export *
694 }
695 module queue {
696 header "queue"
697 export initializer_list
698 export *
699 }
700 module random {
701 header "random"
702 export initializer_list
703 export *
704 }
705 module ratio {
706 header "ratio"
707 export *
708 }
709 module regex {
710 header "regex"
711 export initializer_list
712 export *
713 }
714 module scoped_allocator {
715 header "scoped_allocator"
716 export *
717 }
718 module set {
719 header "set"
720 export initializer_list
721 export *
722 }
723 module sstream {
724 header "sstream"
725 // FIXME: should re-export istream, ostream, ios, streambuf, string?
726 export *
727 }
728 module stack {
729 header "stack"
730 export initializer_list
731 export *
732 }
733 module stdexcept {
734 header "stdexcept"
735 export *
736 }
737 module streambuf {
738 header "streambuf"
739 export *
740 }
741 module string {
742 header "string"
743 export initializer_list
744 export *
745 }
746 module strstream {
747 header "strstream"
748 requires !cplusplus11
749 }
750 module system_error {
751 header "system_error"
752 export *
753 }
754 module thread {
755 header "thread"
756 export *
757 }
758 module tuple {
759 header "tuple"
760 export *
761 }
762 module type_traits {
763 header "type_traits"
764 export *
765 }
766 module typeindex {
767 header "typeindex"
768 export *
769 }
770 module typeinfo {
771 header "typeinfo"
772 export *
773 }
774 module unordered_map {
775 header "unordered_map"
776 export initializer_list
777 export *
778 }
779 module unordered_set {
780 header "unordered_set"
781 export initializer_list
782 export *
783 }
784 module utility {
785 header "utility"
786 export initializer_list
787 export *
788 }
789 module valarray {
790 header "valarray"
791 export initializer_list
792 export *
793 }
794 module vector {
795 header "vector"
796 export initializer_list
797 export *
798 }
799
Richard Smithd3a7bfc2015-10-13 22:13:33800 // FIXME: We don't have modules for the <foo.h> headers, because they might
801 // be included from the C library's headers, and that would create a #include
802 // cycle. For the same reason, we don't have a module for __config.
803 //module __config { header "__config" export * }
804
Richard Smith80fd10e2014-05-21 00:33:49805 // FIXME: These should be private.
806 module __bit_reference { header "__bit_reference" export * }
Richard Smith80fd10e2014-05-21 00:33:49807 module __debug { header "__debug" export * }
808 module __functional_base { header "__functional_base" export * }
809 module __hash_table { header "__hash_table" export * }
810 module __locale { header "__locale" export * }
811 module __mutex_base { header "__mutex_base" export * }
812 module __split_buffer { header "__split_buffer" export * }
813 module __sso_allocator { header "__sso_allocator" export * }
814 module __std_stream { header "__std_stream" export * }
815 module __tree { header "__tree" export * }
816 module __tuple { header "__tuple" export * }
817 module __undef_min_max { header "__undef_min_max" export * }
Saleem Abdulrasool8e5ce332015-02-13 22:15:32818 module __undef___deallocate { header "__undef___deallocate" export * }
Richard Smith80fd10e2014-05-21 00:33:49819}