| // RUN: %clang_cc1 -std=c++17 -fsyntax-only -fmodules %s |
| |
| #pragma clang module build a |
| module a {} |
| #pragma clang module contents |
| #pragma clang module begin a |
| |
| template <class c, c e> struct ak { static constexpr c value = e; }; |
| ak<bool, true> instantiate_class_definition; |
| |
| #pragma clang module end /* a */ |
| #pragma clang module endbuild |
| |
| |
| #pragma clang module build o |
| module o {} |
| #pragma clang module contents |
| #pragma clang module begin o |
| #pragma clang module import a |
| |
| inline int instantiate_var_definition() { return ak<bool, true>::value; } |
| |
| #pragma clang module end |
| #pragma clang module endbuild |
| |
| |
| #pragma clang module import o |
| #pragma clang module import a |
| |
| int main() { return ak<bool, true>::value; } |