55 lines · plain
1// RUN: rm -rf %t2// RUN: mkdir -p %t3// RUN: split-file %s %t4//5// RUN: %clang_cc1 -std=c++20 %t/a.cppm -emit-reduced-module-interface -o %t/a.pcm6// RUN: %clang_cc1 -std=c++20 %t/use.cpp -fprebuilt-module-path=%t -emit-llvm -o -7 8 9//--- a.cppm10export module a;11 12struct a_inner {13 ~a_inner() {14 }15 void f(auto) {16 }17};18 19export template<typename T>20struct a {21 a() {22 struct local {};23 inner.f(local());24 }25private:26 a_inner inner;27};28 29 30namespace {31 32struct s {33};34 35} // namespace36 37void f() {38 a<s> x;39}40 41//--- use.cpp42import a;43 44namespace {45 46struct s {47};48 49} // namespace50 51void g() {52 a<s> x;53}54 55