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 Pavlovtemplate<typename T> void func_01() {} func_01()7*a67a4d2fSSerge Pavlovtemplate<> void func_01<int>() {} func_01()8*a67a4d2fSSerge Pavlovtemplate<> void func_01<long>() {} 9*a67a4d2fSSerge Pavlov template<typename T> void func_01(); 10*a67a4d2fSSerge Pavlov main_01()11*a67a4d2fSSerge Pavlovvoid 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 Pavlovvoid main_02() { 23*a67a4d2fSSerge Pavlov func_02<int*>(); 24*a67a4d2fSSerge Pavlov func_02<char>(); 25*a67a4d2fSSerge Pavlov } 26