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