Clang Project

clang_source_code/test/Modules/cxx17-inline-variables.cpp
1// RUN: %clang_cc1 -std=c++17 -fsyntax-only -fmodules %s
2
3#pragma clang module build a
4module a {}
5#pragma clang module contents
6#pragma clang module begin a
7
8template <class c, c e> struct ak { static constexpr c value = e; };
9ak<bool, true> instantiate_class_definition;
10
11#pragma clang module end /* a */
12#pragma clang module endbuild
13
14
15#pragma clang module build o
16module o {}
17#pragma clang module contents
18#pragma clang module begin o
19#pragma clang module import a
20
21inline int instantiate_var_definition() { return ak<bool, true>::value; }
22
23#pragma clang module end
24#pragma clang module endbuild
25
26
27#pragma clang module import o
28#pragma clang module import a
29
30int main() { return ak<bool, true>::value; }
31