1*4983fdfeSChuanqi Xu// RUN: rm -rf %t
2*4983fdfeSChuanqi Xu// RUN: mkdir %t
3*4983fdfeSChuanqi Xu// RUN: split-file %s %t
4*4983fdfeSChuanqi Xu//
5*4983fdfeSChuanqi Xu// RUN: %clang_cc1 -std=c++20 %t/Templ.cppm -emit-module-interface -o %t/Templ.pcm
6*4983fdfeSChuanqi Xu// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/Use.cpp -verify -fsyntax-only
7*4983fdfeSChuanqi Xu
8*4983fdfeSChuanqi Xu//--- Templ.cppm
9*4983fdfeSChuanqi Xuexport module Templ;
10*4983fdfeSChuanqi Xuexport template <typename T>
11*4983fdfeSChuanqi Xuclass Templ {
12*4983fdfeSChuanqi Xupublic:
13*4983fdfeSChuanqi Xu    Templ(T a) {}
14*4983fdfeSChuanqi Xu};
15*4983fdfeSChuanqi Xu
16*4983fdfeSChuanqi Xutemplate<typename T>
17*4983fdfeSChuanqi XuTempl(T t) -> Templ<T>;
18*4983fdfeSChuanqi Xu
19*4983fdfeSChuanqi Xu//--- Use.cpp
20*4983fdfeSChuanqi Xu// expected-no-diagnostics
21*4983fdfeSChuanqi Xuimport Templ;
22*4983fdfeSChuanqi Xuvoid func() {
23*4983fdfeSChuanqi Xu    Templ t(5);
24*4983fdfeSChuanqi Xu}
25*4983fdfeSChuanqi Xu
26