// RUN: rm -rf %t | |
// RUN: mkdir -p %t | |
// RUN: split-file %s %t | |
// | |
// RUN: %clang_cc1 -std=c++20 %t/std.cppm -emit-module-interface -o %t/std.pcm | |
// RUN: %clang_cc1 -std=c++20 %t/mod.cppm -fprebuilt-module-path=%t -emit-module-interface -o %t/mod.pcm | |
// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t -verify %t/main.cpp | |
//--- std.cppm | |
export module std; | |
extern "C++" { | |
namespace std { | |
export template <class E> | |
class initializer_list { | |
const E* _1; | |
const E* _2; | |
}; | |
} | |
} | |
//--- mod.cppm | |
export module mod; | |
import std; | |
export struct A { | |
void func(std::initializer_list<int>) {} | |
}; | |
//--- main.cpp | |
// expected-no-diagnostics | |
import std; | |
import mod; | |
int main() { | |
A{}.func({1,1}); | |
return 0; | |
} |