summaryrefslogtreecommitdiff
path: root/test/PCH/cxx-templates.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/PCH/cxx-templates.cpp')
-rw-r--r--test/PCH/cxx-templates.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/PCH/cxx-templates.cpp b/test/PCH/cxx-templates.cpp
new file mode 100644
index 000000000000..f12742755a9f
--- /dev/null
+++ b/test/PCH/cxx-templates.cpp
@@ -0,0 +1,25 @@
+// Test this without pch.
+// RUN: %clang_cc1 -include %S/cxx-templates.h -verify %s -ast-dump
+
+// Test with pch.
+// RUN: %clang_cc1 -x c++-header -emit-pch -o %t %S/cxx-templates.h
+// RUN: %clang_cc1 -include-pch %t -verify %s -ast-dump
+
+struct A {
+ typedef int type;
+ static void my_f();
+ template <typename T>
+ static T my_templf(T x) { return x; }
+};
+
+void test() {
+ int x = templ_f<int, 5>(3);
+
+ S<char, float>::templ();
+ S<int, char>::partial();
+ S<int, float>::explicit_special();
+
+ Dep<A>::Ty ty;
+ Dep<A> a;
+ a.f();
+}