|
| 1 | +// RUN: rm -rf %t |
| 2 | +// RUN: %clang_cc1 -cxx-isystem %S/Inputs/builtin-headers/c++ -internal-isystem %S/Inputs/builtin-headers -fsyntax-only -fmodules -fmodules-cache-path=%t -fmodule-map-file=%S/Inputs/builtin-headers/c++/module.modulemap -fmodule-map-file=%resource_dir/module.modulemap -fmodule-map-file=%S/Inputs/builtin-headers/system-modules.modulemap -fbuiltin-headers-in-system-modules -DSYSTEM_MODULES %s -verify |
| 3 | +// RUN: rm -rf %t |
| 4 | +// RUN: %clang_cc1 -cxx-isystem %S/Inputs/builtin-headers/c++ -internal-isystem %S/Inputs/builtin-headers -fsyntax-only -fmodules -fmodules-cache-path=%t -fmodule-map-file=%S/Inputs/builtin-headers/c++/module.modulemap -fmodule-map-file=%resource_dir/module.modulemap -fmodule-map-file=%S/Inputs/builtin-headers/builtin-modules.modulemap %s -verify |
| 5 | + |
| 6 | +// expected-no-diagnostics |
| 7 | + |
| 8 | +@import cpp_stdint; |
| 9 | + |
| 10 | +// The builtin modules are always available, though they're mostly |
| 11 | +// empty if -fbuiltin-headers-in-system-modules is used. |
| 12 | +@import _Builtin_float; |
| 13 | +@import _Builtin_inttypes; |
| 14 | +@import _Builtin_iso646; |
| 15 | +@import _Builtin_limits; |
| 16 | +@import _Builtin_stdalign; |
| 17 | +@import _Builtin_stdarg; |
| 18 | +@import _Builtin_stdatomic; |
| 19 | +@import _Builtin_stdbool; |
| 20 | +@import _Builtin_stddef; |
| 21 | +@import _Builtin_stdint; |
| 22 | +@import _Builtin_stdnoreturn; |
| 23 | +@import _Builtin_tgmath; |
| 24 | +@import _Builtin_unwind; |
| 25 | + |
| 26 | +#ifdef SYSTEM_MODULES |
| 27 | +// system-modules.modulemap uses the "mega module" style with |
| 28 | +// -fbuiltin-headers-in-system-modules, and its modules cover |
| 29 | +// the clang builtin headers. |
| 30 | +@import cstd; |
| 31 | +#else |
| 32 | +// builtin-modules.modulemap uses top level modules for each |
| 33 | +// of its headers, which allows interleaving with the builtin |
| 34 | +// modules and libc++ modules. |
| 35 | +@import c_complex; |
| 36 | +@import c_float; |
| 37 | +@import c_inttypes; |
| 38 | +@import c_limits; |
| 39 | +@import c_math; |
| 40 | +@import c_stdint; |
| 41 | +#endif |
0 commit comments