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 42