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//--- foo.h 9*4983fdfeSChuanqi Xutemplate <typename T> 10*4983fdfeSChuanqi Xuclass Templ { 11*4983fdfeSChuanqi Xupublic: 12*4983fdfeSChuanqi Xu Templ(T a) {} 13*4983fdfeSChuanqi Xu}; 14*4983fdfeSChuanqi Xu 15*4983fdfeSChuanqi Xutemplate<typename T> 16*4983fdfeSChuanqi XuTempl(T t) -> Templ<T>; 17*4983fdfeSChuanqi Xu 18*4983fdfeSChuanqi Xu//--- Templ.cppm 19*4983fdfeSChuanqi Xumodule; 20*4983fdfeSChuanqi Xu#include "foo.h" 21*4983fdfeSChuanqi Xuexport module Templ; 22*4983fdfeSChuanqi Xuexport using ::Templ; 23*4983fdfeSChuanqi Xu 24*4983fdfeSChuanqi Xu//--- Use.cpp 25*4983fdfeSChuanqi Xu// expected-no-diagnostics 26*4983fdfeSChuanqi Xuimport Templ; 27*4983fdfeSChuanqi Xuvoid func() { 28*4983fdfeSChuanqi Xu Templ t(5); 29*4983fdfeSChuanqi Xu} 30*4983fdfeSChuanqi Xu 31