1 // This comes from the issue report of MSVC
2 // (https://developercommunity.visualstudio.com/t/c20-modules-unresolved-external-symbol/10049210).
6 // RUN: split-file %s %t
8 // RUN: %clang_cc1 -std=c++20 %t/base.cppm -emit-module-interface -o %t/package-base.pcm
9 // RUN: %clang_cc1 -std=c++20 %t/child.cppm -emit-module-interface -o %t/package-child.pcm \
10 // RUN: -fprebuilt-module-path=%t
11 // RUN: %clang_cc1 -std=c++20 %t/package.cppm -emit-module-interface -o %t/package.pcm \
12 // RUN: -fprebuilt-module-path=%t
13 // RUN: %clang_cc1 -std=c++20 %t/use.cpp -fsyntax-only -verify -fprebuilt-module-path=%t
16 export module package:base;
21 template<class> struct base
28 export module package:child;
32 export struct child : base<void> {};
35 child base<T>::getChild() { return {}; }
38 export module package;
44 // expected-no-diagnostics
49 base<void>{}.getChild();
50 base<int>{}.getChild();