summaryrefslogtreecommitdiff
path: root/test/PCH/cxx-templates.cpp
diff options
context:
space:
mode:
authorRoman Divacky <rdivacky@FreeBSD.org>2010-07-13 17:21:42 +0000
committerRoman Divacky <rdivacky@FreeBSD.org>2010-07-13 17:21:42 +0000
commit4ba675006b5a8edfc48b6a9bd3dcf54a70cc08f2 (patch)
tree48b44512b5db8ced345df4a1a56b5065cf2a14d9 /test/PCH/cxx-templates.cpp
parentd7279c4c177bca357ef96ff1379fd9bc420bfe83 (diff)
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();
+}