1// RUN: rm -rf %t 2// RUN: mkdir -p %t 3// RUN: split-file %s %t 4// 5// RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-module-interface -o %t/a.pcm 6// RUN: %clang_cc1 -std=c++20 %t/b.cppm -emit-module-interface -o %t/b.pcm \ 7// RUN: -fprebuilt-module-path=%t 8// RUN: %clang_cc1 -std=c++20 %t/test.cpp -fsyntax-only -verify \ 9// RUN: -fprebuilt-module-path=%t 10 11//--- a.cppm 12export module a; 13 14namespace n { 15template<typename, int...> 16struct integer_sequence { 17 18}; 19 20export template<typename> 21using make_integer_sequence = __make_integer_seq<integer_sequence, int, 0>; 22} 23 24//--- b.cppm 25export module b; 26import a; 27 28export template<typename T> 29void b() { 30 n::make_integer_sequence<T>(); 31} 32 33//--- test.cpp 34// expected-no-diagnostics 35import b; 36void test() { 37 b<int>(); 38} 39