xref: /llvm-project/clang/test/Coverage/ast-print-temp-func.cpp (revision a67a4d2f3c07bd589d395a5815dea2198a261162)
1*a67a4d2fSSerge Pavlov // RUN: %clang_cc1 -ast-print -std=c++14 %s -o %t.1.cpp
2*a67a4d2fSSerge Pavlov // RUN: %clang_cc1 -ast-print -std=c++14 %t.1.cpp -o %t.2.cpp
3*a67a4d2fSSerge Pavlov // RUN: diff %t.1.cpp %t.2.cpp
4*a67a4d2fSSerge Pavlov 
5*a67a4d2fSSerge Pavlov template<typename T> void func_01();
func_01()6*a67a4d2fSSerge Pavlov template<typename T> void func_01() {}
func_01()7*a67a4d2fSSerge Pavlov template<> void func_01<int>() {}
func_01()8*a67a4d2fSSerge Pavlov template<> void func_01<long>() {}
9*a67a4d2fSSerge Pavlov template<typename T> void func_01();
10*a67a4d2fSSerge Pavlov 
main_01()11*a67a4d2fSSerge Pavlov void main_01() {
12*a67a4d2fSSerge Pavlov   func_01<int*>();
13*a67a4d2fSSerge Pavlov   func_01<char>();
14*a67a4d2fSSerge Pavlov }
15*a67a4d2fSSerge Pavlov 
16*a67a4d2fSSerge Pavlov template<typename T> void func_02();
17*a67a4d2fSSerge Pavlov template<typename T> void func_02();
18*a67a4d2fSSerge Pavlov template<> void func_02<int>();
19*a67a4d2fSSerge Pavlov template<> void func_02<long>();
20*a67a4d2fSSerge Pavlov template<typename T> void func_02();
21*a67a4d2fSSerge Pavlov 
main_02()22*a67a4d2fSSerge Pavlov void main_02() {
23*a67a4d2fSSerge Pavlov   func_02<int*>();
24*a67a4d2fSSerge Pavlov   func_02<char>();
25*a67a4d2fSSerge Pavlov }
26