// RUN: rm -rf %t // 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 // RUN: rm -rf %t // 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 // expected-no-diagnostics @import cpp_stdint; // The builtin modules are always available, though they're mostly // empty if -fbuiltin-headers-in-system-modules is used. @import _Builtin_float; @import _Builtin_inttypes; @import _Builtin_iso646; @import _Builtin_limits; @import _Builtin_stdalign; @import _Builtin_stdarg; @import _Builtin_stdatomic; @import _Builtin_stdbool; @import _Builtin_stddef; @import _Builtin_stdint; @import _Builtin_stdnoreturn; @import _Builtin_tgmath; @import _Builtin_unwind; #ifdef SYSTEM_MODULES // system-modules.modulemap uses the "mega module" style with // -fbuiltin-headers-in-system-modules, and its modules cover // the clang builtin headers. @import cstd; #else // builtin-modules.modulemap uses top level modules for each // of its headers, which allows interleaving with the builtin // modules and libc++ modules. @import c_complex; @import c_float; @import c_inttypes; @import c_limits; @import c_math; @import c_stdint; #endif