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